Docker – это система управления контейнерами для Linux. Если говорить просто, то контейнеры – это что-то среднее между виртуальными машинами, с полной изоляцией и chroot окружением. Все процессы выполняются в изолированном пространстве, но в то же время на одном ядре, что позволяет экономить ресурсы основной системы.

Docker не реализует собственную систему контейнеров, он использует LXC и выступает в качестве оболочки, которая позволяет автоматически загружать, устанавливать и запускать образы контейнеров, а также управлять ими. Все действия выполняются в несколько команд и намного проще чем при использовании lxc. В этой статье мы рассмотрим как выполняется установка docker на Ubuntu, а также как использовать контейнеры в Linux.

Системные требования

Для работы docker ваша система должна отвечать таким требованиям:

  • Программа работает только на системах 64 битной архитектуры;
  • Необходимо ядро версии не ниже чем 3.10. В более старых версиях реализованы не все необходимые возможности, и это будет вызывать различные ошибки;
  • Быстрый интернет – для загрузки или выгрузки образов контейнера.

Если вы используете Ubuntu версии выше 16.04, то проблем с ядром не возникнет, так как эта система поставляется с ядром 4.2 по умолчанию.

Установка Docker в Ubuntu

Перед тем как переходить к установке самой программы, нужно обновить систему до актуального состояния. Для этого выполните:

sudo apt update && sudo apt upgrade

Перед тем как установить Docker Ubuntu необходимо установить дополнительные пакеты ядра, которые позволяют использовать Aufs для контейнеров Docker. С помощью этой файловой системы мы сможем следить за изменениями и делать мгновенные снимки контейнеров:

sudo apt install linux-image-extra-$(uname -r) linux-image-extra-virtual

Ещё надо установить пакеты, необходимые для работы apt по https:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

После того как все приготовления завершены и вы убедились что ваша система полностью готова, можно перейти к установке. Мы будем устанавливать программу из официального репозитория разработчиков. Сначала надо добавить ключ репозитория:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Затем добавьте репозиторий docker в систему:

sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable”

sudo apt update && apt-cache policy docker-ce

И установка Docker на Ubuntu:

sudo apt install -y docker-ce

Теперь установка Docker Ubuntu и всех необходимых компонентов завершена. Первой командой мы добавили ключ репозитория разработчиков, второй – сам репозиторий. Далее обновили списки пакетов и сообщили системе что можно заменять системные пакеты на пакеты из этого репозитория.

Чтобы завершить установку осталось добавить нашего пользователя в группу docker. Иначе при запуске утилиты вы будете получать ошибку подключения к сокету:

Установка Docker на Ubuntu

Для добавления выполните:

sudo usermod -aG docker $(whoami)

Установка Docker на Ubuntu

Затем проверяем запущен ли сервис:

sudo systemctl status docker

Установка Docker на Ubuntu

Все готово к работе. Теперь рассмотрим подробнее использование Docker.

Установка Docker Compose

Сейчас работа с docker не обходится без утилиты управления контейнерами docker compose, давайте её тоже установим. Чтобы установить docker compose Ubuntu выполните последовательность команд:

sudo curl -L “https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Утилита была загружена из официального сайта и теперь вы можете посмотреть её версию:

Утилита Docker

Все действия с контейнерами выполняются утилитой docker. Ее можно запускать от имени вашего пользователя после того, как он был добавлен в группу программы. Синтаксис утилиты очень прост:

$ docker опции команда опции_команды аргументы

Установка Docker на Ubuntu

Давайте сначала рассмотрим основные опции утилиты их всего несколько:

  • -D – включить режим отладки;
  • -H – подключиться к серверу, запущенному на другом компьютере;
  • -l – изменить уровень ведения логов, доступно: debug,info,warn,error,fatal;
  • -v – показать версию;
  • –help вывести справку по команде или утилите в целом;

Команд намного больше, ниже приведены все команды, которые вы можете использовать в своих программах:

  • attach – подключиться к запущенному контейнеру;
  • build – собрать образ из инструкций dockerfile;
  • commit – создать новый образ из изменений контейнера;
  • cp – копировать файлы между контейнером и файловой системой;
  • create – создать новый контейнер;
  • diff – проверить файловую систему контейнера;
  • events – посмотреть события от контейнера;
  • exec – выполнить команду в контейнере;
  • export – извлечь содержимое контейнера в архив;
  • history – посмотреть историю изменений образа;
  • images – список установленных образов;
  • import – создать контейнер из архива tar;
  • info – посмотреть информацию о системе;
  • inspect – посмотреть информацию о контейнере;
  • kill – остановить запущенный контейнер;
  • load – загрузить образ из архива;
  • login – авторизация в официальном репозитории Docker;
  • logout – выйти из репозитория Docker;
  • logs – посмотреть логи контейнера;
  • pause – приостановить все процессы контейнера;
  • port – подброс портов для контейнера;
  • ps – список запущенных контейнеров;
  • pull – скачать образ контейнера из репозитория;
  • push – отправить образ в репозиторий;
  • restart – перезапустить контейнер;
  • rm – удалить контейнер;
  • run – выполнить команду в контейнере;
  • save – сохранить образ в архив tar;
  • search – поиск образов в репозитории по заданному шаблону;
  • start – запустить контейнер;
  • stats – статистика использования ресурсов контейнером;
  • stop – остановить контейнер;
  • top – посмотреть запущенные процессы в контейнере;
  • unpause – проложить выполнение процессов в контейнере.

В этой статье мы будем часто использовать команду run, рассмотрим ее опции:

  • -e – переменные окружения для команды;
  • -h – имя хоста контейнера;
  • -i – интерактивный режим, связывающий stdin терминала с командой;
  • -m – ограничение памяти для команды;
  • -u – пользователь, от имени которого будет выполнена команда;
  • -t – связать tty с контейнером для работы ввода и вывода;
  • -v – примонтировать директорию основной системы в контейнер.

Теперь, когда мы рассмотрели все основы, приведем несколько примеров работы с контейнерами. Это очень просто.

Использование Docker в Ubuntu

Чтобы убедиться что все работает давайте запустим тестовый образ. Для этого наберите:

docker run hello-world

Больше ничего не нужно, программа сама скачает образ, и выполнит оболочку в нем. Вы увидите сообщение Hello from Docker:

Установка Docker на Ubuntu

Поиск и установка контейнеров

Использование docker очень простое по своей сути. Если вы не знаете название нужного пакета, можете воспользоваться поиском, например, найдем Ubuntu:

docker search ubuntu

Установка Docker на Ubuntu

Утилита выведет список всех доступных для загрузки образов из репозитория Docker, которые содержат такое слово. Колонка Official означает, что образ поддерживается официальным разработчиком, а Stars – это количество пользователей, которым этот образ понравился.

Для загрузки образа на локальный компьютер используйте команду pull:

docker pull ubuntu

Установка Docker на Ubuntu

После завершения загрузки вы можете посмотреть список установленных образов:

Установка Docker на Ubuntu

Запуск контейнера

Теперь, давайте запустим командную оболочку контейнера с помощью команды run, для получения интерактивного доступа используйте опции -i и -t:

docker run -it ubuntu

Установка Docker на Ubuntu

Вы в окружении контейнера. У вас есть права суперпользователя, но вы не можете получить доступ к основной системе. Контейнер содержит минимум необходимых файлов, нет даже текстовых редакторов. Для установки чего-либо сначала нужно обновить репозиторий:

Установка Docker на Ubuntu

Например, установим утилиту dialog:

apt-get install -y dialog

Установка Docker на Ubuntu

Сохранение изменений

Вы можете изменять контейнер как захотите, добавлять и удалять программы и многое другое. Но когда вы его удалите, все изменения будут потеряны. Вы можете создать новое образ из модифицированного контейнера, для этого используется команда commit. Сначала смотрим список запущенных контейнеров:

Установка Docker на Ubuntu

Отсюда возьмите id контейнера, затем выполните такую команду для создания нового образа:

docker commit -m “изменения” -a “автор” ид_контейнера repository/имя

docker commit -m “Zenity” -a “Seriyyy95” d034b794a3bf repository/ubuntu-zenity

Установка Docker на Ubuntu

Новый образ был сохранен на вашем компьютере и вы можете увидеть его в списке образов:

Установка Docker на Ubuntu

Список контейнеров

Как я уже говорил, вы можете посмотреть список запущенных контейнеров с помощью команды ps:

Установка Docker на Ubuntu

Если вам нужны все контейнеры, используйте опцию -a:

Установка Docker на Ubuntu

Чтобы вывести последний созданный контейнер, используйте:

Установка Docker на Ubuntu

Управление контейнерами

Чтобы остановить запущенный контейнер используйте команду stop:

docker stop d034b794a3bf

Установка Docker на Ubuntu

docker start d034b794a3bf

Установка Docker на Ubuntu

Вы можете подключиться к запущенному контейнеру с помощью attach:

docker attach d034b794a3bf

Установка Docker на Ubuntu

Чтобы удалить контейнер со всеми изменениями выполните:

docker rm d034b794a3bf

Установка Docker на Ubuntu

Выводы

Вы этой статье мы рассмотрели как выполняется установка Docker Ubuntu. В этом дистрибутиве процесс установки не будет трудным даже для новичков. А возможность установки различных дистрибутивов в несколько команд может быть полезной во многих ситуациях. А вы пользуетесь Docker? Для решения каких задач? Напишите в комментариях!

Вы пропустили

AEGIS Algorithms Android Angular Apache Airflow Apache Druid Apache Flink Apache Spark API API Canvas AppSec Architecture Artificial Intelligence Astro Authentication Authorization AutoGPT AWS AWS Aurora AWS Boto3 AWS EC2 AWS Lambda Azure Babylon.js Backend bash Beautiful Soup Bento UI Big Data Binary Tree Browser API Bun Career Cassandra Charts ChatGPT Chrome Extension Clean Code CLI ClickHouse Coding Codux Combine Compose Computer Context Fusion Copilot Cosmo Route CProgramming cron Cryptography CSS CTF Cypress DALL-E Data Analysis Data science Database dbt dbt Cloud deno Design Design Patterns Detekt Development Distributed Systems Django Docker Docker Hub Drizzle DRY DuckDB Express FastAPI Flask Flutter For Beginners Front End Development Game Development GCN GCP Geospatial Git GitHub Actions GitHub Pages Gitlab GMS GoFr Golang Google Google Sheets Google Wire GPT-3 GPT3 Gradio Gradle Grafana Graphic Design GraphQL gRPC Guidance HMS Hotwire HTML Huawei HuggingFace IndexedDB InfoSec Interview iOS Jackknife Java JavaScript Jetpack Compose JSON Kafka Kotlin Kubernetes LangChain Laravel Linux LlaMA LLM localStorage Logging Machine Learning Magento Math Mermaid Micro Frontends Mobile Mobile App Development mondayDB MongoDB Mongoose MySQL Naming NestJS NET NetMock Networks NextJS NLP Node.js Nodejs NoSQL NPM OOP OpenAI OTP Pandas PDF PHP Playwright Plotly Polars PostgreSQL Prefect Productivity Programming Prometheus Puppeteer Pushover Python Pytorch Quarkus Rabbitmq RAG Ramda Raspberry Pi React React Native Reactor Redis REST API Revolut Riverpod RProgramming Ruby Ruby on Rails Rust Scalene SCDB ScyllaDB Selenium Servers Sklearn SLO SnowFlake Snowkase Software Architecture Software Development Solara Solid Spring Boot SQL SQLite Streamlit SudoLang Supabase Swift SwiftUI Tailwind CSS Taipy Terraform Testing Transformers TURN TypeScript Ubuntu UI Design Unix UX UX Design Vim Vite VSCode Vue Web Architecture Web Components Web Development Web Frameworks Web Scraping Web-разработка Webassembly Websocket Whisper Widgets WordPress YAML YouTube Zed Наука о данных Разное Тренды

Как исследовать и визуализировать данные МО для обнаружения объектов на изображениях