Основные команды Docker для начинающих

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

Введение в Docker

Прежде чем перейти к командам, давайте вкратце разберемся, что такое Docker и некоторые ключевые понятия.

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

Вот некоторые ключевые понятия Docker:

  • Образ Docker: Шаблон, доступный только для чтения, который содержит инструкции по созданию контейнера Docker. Это как чертеж для вашего приложения.
  • Контейнер Docker: Запускаемый экземпляр образа Docker. Это изолированная и безопасная среда, в которой выполняется ваше приложение.
  • Docker Hub: Облачный реестр, в котором можно найти существующие образы Docker или разместить свои собственные.
  • Dockerfile: Текстовый файл, содержащий инструкции по сборке образа Docker.

Теперь перейдем к рассмотрению основных команд Docker.

Установка Docker

Прежде чем начать использовать команды Docker, вам нужно установить Docker на свою машину. Процесс установки зависит от вашей операционной системы. Инструкции по установке для конкретной ОС можно найти на официальном сайте Docker: https://docs.docker.com/get-docker/

После установки Docker вы можете проверить установку, выполнив следующую команду в терминале:

$ docker --version

Эта команда должна отобразить версию Docker, установленную на вашей машине.

Основные команды Docker

1. Образы Docker

Образы Docker – это строительные блоки контейнеров. Здесь приведены некоторые важные команды для работы с образами Docker:

Список образов Docker

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

$ docker images

Эта команда выведет список всех образов Docker на вашей машине с указанием их репозитория, тега, идентификатора образа, даты создания и размера.

Извлечение образа Docker

Чтобы загрузить (извлечь) образ Docker из реестра (например, Docker Hub), выполните команду:

$ docker pull [image_name]:[tag]

Замените [image_name] на название изображения, которое вы хотите извлечь, и [tag] с указанием конкретной версии или тега изображения (например, latest, 16.04, и т. д.). Если вы не укажете тег, Docker автоматически извлечет тег latest тег.

Например, чтобы извлечь последнюю версию nginx образа, выполните команду:

$ docker pull nginx

Удаление образа Docker

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

$ docker rmi [image_id]

Заменить [image_id] на идентификатор изображения, которое вы хотите удалить. Идентификатор изображения можно узнать, выполнив команду docker images.

Если изображение имеет несколько тегов, перед удалением изображения необходимо удалить все связанные с ним теги. Это можно сделать, выполнив команду:

$ docker rmi [image_id] [image_id] ...

Заменить [image_id] идентификаторами всех тегов, которые вы хотите удалить.

В качестве альтернативы можно использовать функцию --force флаг, чтобы удалить образ, даже если он используется запущенным контейнером:

$ docker rmi --force [image_id]

2. Контейнеры Docker

Контейнеры Docker – это запущенные экземпляры образов Docker. Здесь приведены некоторые необходимые команды для работы с контейнерами Docker:

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

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

$ docker ps

Если вы хотите получить список всех контейнеров (запущенных и остановленных), используйте команду -a флаг:

$ docker ps -a

Эта команда отобразит различную информацию о контейнерах, такую как их идентификаторы, имена, образы, время создания и статус.

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

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

$ docker run [options] [image_name]:[tag] [command]

Заменить [options] с любыми дополнительными параметрами, которые вы хотите передать контейнеру (например, -d для работы в отсоединенном режиме, -p для сопоставления портов, -v для монтирования томов и т.д.), [image_name] с именем образа, который вы хотите запустить, [tag] с конкретным тегом изображения (при желании), и [command] с командой, которую вы хотите запустить внутри контейнера (если необходимо).

Например, чтобы запустить команду nginx образ и сопоставить порт контейнера 80 на ваш локальный порт 8080, запустите:

$ docker run -d -p 8080:80 nginx

Эта команда запустит программу nginx контейнер в отсоединенном режиме (-d) и отобразить порт 80 контейнера на порт 8080 на вашей локальной машине.

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

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

$ docker start [container_id]

Заменить [container_id] идентификатором или именем контейнера, который нужно запустить.

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

$ docker stop [container_id]

Заменить [container_id] идентификатором или именем контейнера, который нужно остановить.

Удаление контейнера Docker

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

$ docker rm [container_id]

Заменить [container_id] идентификатором или именем контейнера, который нужно удалить.

Если контейнер запущен, то перед удалением его нужно сначала остановить. В качестве альтернативы можно использовать функцию --force флаг для удаления запущенного контейнера:

$ docker rm --force [container_id]

Выполнение команд в запущенном контейнере

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

$ docker exec [options] [container_id] [command]

Заменить [options] с любыми дополнительными параметрами, которые вы хотите передать (например, -it для интерактивного режима), [container_id] с идентификатором или именем запущенного контейнера, и [command] команда, которую нужно выполнить внутри контейнера.

Например, чтобы открыть оболочку bash внутри запущенного контейнера, выполните:

$ docker exec -it [container_id] /bin/bash

3. Сети Docker

Контейнеры Docker могут взаимодействовать друг с другом и с хост-машиной с помощью сетей Docker. Вот несколько основных команд для работы с сетями Docker:

Список сетей Docker

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

$ docker network ls

Эта команда выведет список всех сетей Docker с указанием их имен, драйверов и области видимости.

Создание сети Docker

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

$ docker network create [options] [network_name]

Заменить [options] с любыми дополнительными параметрами, которые вы хотите передать (например, --driver для указания сетевого драйвера), и [network_name] с именем, которое вы хотите дать новой сети.

Например, чтобы создать новую сеть моста с именем my-network, выполните команду:

$ docker network create my-network

Подключение контейнера к сети

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

$ docker network connect [network_name] [container_id]

Заменить [network_name] на имя сети, к которой вы хотите подключить контейнер, и [container_id] идентификатором или именем запущенного контейнера.

Отключение контейнера от сети

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

$ docker network disconnect [network_name] [container_id]

Заменить [network_name] с именем сети, от которой вы хотите отключить контейнер, и [container_id] идентификатором или именем запущенного контейнера.

4. Тома Docker

Тома Docker используются для сохранения данных и обмена ими между хост-машиной и контейнерами или между несколькими контейнерами. Вот несколько основных команд для работы с томами Docker:

Список томов Docker

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

$ docker volume ls

Эта команда выведет список всех томов Docker, а также их имена и драйверы.

Создание тома Docker

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

$ docker volume create [volume_name]

Заменить [volume_name] именем, которое вы хотите присвоить новому тому.

Монтирование тома в контейнер

Чтобы смонтировать том в контейнер Docker, используйте команду -v или --volume флаг при запуске контейнера:

$ docker run -v [volume_name]:[container_path] [image_name]

Заменить [volume_name] именем или путем тома, который нужно смонтировать, [container_path] путь внутри контейнера, куда нужно смонтировать том, и [image_name] имя образа, который вы хотите запустить.

Например, чтобы смонтировать том с именем app-data в /app/data каталог внутри контейнера, в котором запущен my-app образ, запустите:

$ docker run -v app-data:/app/data my-app

Удаление тома Docker

Чтобы удалить том Docker, выполните команду:

$ docker volume rm [volume_name]

Заменить [volume_name] именем тома, который нужно удалить.

Если том в данный момент используется запущенным контейнером, перед удалением тома необходимо сначала остановить и удалить контейнер.

5. Docker Compose

Docker Compose – это инструмент для определения и запуска многоконтейнерных приложений Docker. Он использует YAML-файл для определения служб, сетей и томов, необходимых для вашего приложения. Вот несколько основных команд для работы с Docker Compose:

Запуск приложения Docker Compose

Чтобы запустить приложение Docker Compose, перейдите в каталог, содержащий файл docker-compose.yml файл и запустите его:

$ docker-compose up

Эта команда запустит все службы, определенные в файле docker-compose.yml файле. Если вы хотите запустить контейнеры в фоновом режиме, используйте команду -d флаг:

$ docker-compose up -d

Остановка приложения Docker Compose

Чтобы остановить работающее приложение Docker Compose, выполните команду:

$ docker-compose down

Эта команда остановит и удалит все контейнеры, сети и тома, связанные с приложением.

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

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

$ docker-compose ps

Эта команда выведет список всех контейнеров с их именами, командами и статусом.

Пересборка контейнеров Docker Compose

Если вы внесли изменения в код или конфигурацию приложения, вам нужно пересобрать контейнеры. Для этого выполните команду:

$ docker-compose up --build

Эта команда перестроит контейнеры на основе обновленного Dockerfile и docker-compose.yml файл.

6. Docker Hub и частные реестры

Docker Hub – это облачная служба реестра, где можно находить образы Docker и обмениваться ими. Вы также можете создать свой собственный частный реестр для хранения и распространения собственных образов. Вот несколько основных команд для работы с Docker Hub и частными реестрами:

Войдите в Docker Hub

Чтобы войти в свою учетную запись Docker Hub, выполните команду:

$ docker login

Эта команда предложит вам ввести имя пользователя и пароль Docker Hub.

Отправка образа в Docker Hub

Чтобы отправить образ Docker в репозиторий Docker Hub, сначала нужно пометить образ своим именем пользователя Docker Hub:

$ docker tag [image_id] [username]/[image_name]:[tag]

Замените [image_id] идентификатором изображения, которое вы хотите нажать, [username] с именем пользователя Docker Hub, [image_name] имя, которое вы хотите дать образу, и [tag] с нужным тегом (например, latest, v1.0, и т.д.).

После того как образ промаркирован, вы можете отправить его в Docker Hub:

$ docker push [username]/[image_name]:[tag]

Извлечение образа из Docker Hub

Чтобы извлечь образ из Docker Hub, выполните команду:

$ docker pull [username]/[image_name]:[tag]

Заменить [username] на имя пользователя Docker Hub владельца образа, [image_name] с именем образа, и [tag] с нужным тегом.

Вход в личный реестр

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

$ docker login [registry_url]

Заменить [registry_url] на URL-адрес вашего личного реестра. Эта команда предложит вам ввести учетные данные реестра (имя пользователя и пароль).

Передача изображения в личный реестр

Чтобы отправить образ Docker в частный реестр, сначала нужно пометить образ URL-адресом реестра:

$ docker tag [image_id] [registry_url]/[image_name]:[tag]

Заменить [image_id] идентификатором изображения, которое вы хотите нажать, [registry_url] с URL-адресом вашего личного реестра, [image_name] с именем, которое вы хотите дать изображению, и [tag] нужный тег.

После того как изображение помечено, его можно поместить в личный реестр:

$ docker push [registry_url]/[image_name]:[tag]

Извлечение изображения из частного реестра

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

$ docker pull [registry_url]/[image_name]:[tag]

Заменить [registry_url] на URL-адрес вашего личного реестра, [image_name] с именем изображения, и [tag] с нужным тегом.

Заключение

В этом подробном руководстве мы рассмотрели основные команды Docker, которые должен знать каждый новичок. От работы с образами и контейнерами Docker до управления сетями, томами и реестрами – теперь у вас есть базовые знания, чтобы начать эффективно использовать Docker.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *