Docker, широко известная платформа, упрощает управление приложениями в изолированных средах для разработчиков, предоставляя мощные возможности контейнеризации, необходимые в современной разработке программного обеспечения. Для эффективного использования Docker важно знать основные команды для управления контейнерами и образами. Ниже рассмотрим ключевые команды Docker:
1. Команда "docker run" эта команда создает и запускает контейнер из образа, позволяя настраивать контейнер с помощью различных параметров и аргументов.
Примеры использования:
- Запуск контейнера в фоновом режиме, проброс порта с хоста на контейнер и передача переменной окружения: `docker run -d -p 8080:80 -e env_var=value nginx`
- Запуск контейнера с ограничением ресурсов, например, ограничение оперативной памяти до 2 гигабайт: `docker run --memory=2g myIMG`
2. Команда "docker start" используется для запуска остановленных контейнеров, чтобы возобновить их работу.
Примеры использования:
- Запуск одного остановленного контейнера: `docker start mycontainer`
- Запуск нескольких остановленных контейнеров: `docker start first_container second_container third_container`
3. Команда "docker stop" останавливает работающий контейнер.
Примеры использования:
- Остановка одного работающего контейнера: `docker stop mycontainer`
- Остановка нескольких контейнеров: `docker stop first_container second_container third_container`
- Остановка контейнера через определенное время (например, через 30 секунд): `docker stop -t 30 mycontainer`
4. Команда "docker restart" позволяет перезапустить контейнер.
Примеры использования:
- Перезапуск одного контейнера:
docker restart mycontainer
- Перезапуск нескольких контейнеров:
docker restart first_container second_container third_container
- Перезапуск через определенное время:
docker restart -t 30 mycontainer
5. Команда "docker rm" используется для удаления одного или нескольких остановленных контейнеров.
Примеры использования:
- Удаление одного контейнера:
docker rm mycontainer
- Удаление нескольких контейнеров:
docker rm first_container second_container third_container
- Принудительное удаление (позволяет удалить контейнер, который выполняется в данный момент):
docker rm -f mycontainer
6. Команда "docker ps" отображает список активных контейнеров в системе и предоставляет информацию о них, такую как их id, имена, статус, порты и использование ресурсов.
Пример использования:
- Отображение списка только работающих контейнеров:
docker ps
Команды для работы с контейнерами в Docker:
- Отображение списка всех контейнеров (включая остановленные):
docker ps -a
- Отображение размера занимаемого дискового пространства контейнерами:
docker ps -s
Команды для управления образами:
7. Команда "docker pull" загружает образы из удаленного репозитория Docker Hub и предоставляет доступ к готовым образам.
Примеры использования:
- Загрузка последней версии образа Ubuntu:
docker pull ubuntu
- Загрузка определенной версии образа, например, Ubuntu версии 20.04:
docker pull ubuntu:20.04
8. Команда "docker build" эта команда используется для создания пользовательского образа Docker на основе Dockerfile, который содержит инструкции для создания образа.
Примеры использования команды "docker build":
- Сборка образа из текущего каталога, используя Dockerfile из этого каталога:
docker build -t myIMG:latest .
- Сборка образа из удаленного репозитория Git, содержащего Dockerfile:
docker build -t myIMG:latest https://github.com/username/repo.git#branch
9. Команда "docker push" эта команда используется для загрузки пользовательского образа в Docker Hub или другие хранилища образов, позволяя делиться созданным образом с другими пользователями Docker.
Примеры использования:
- Загрузка в репозиторий по умолчанию:
docker push username/myIMG:1.0
- Загрузка в другое хранилище, например, репозиторий ECR:
docker push myecr/myIMG:latest
10. Команда "docker rmi" эта команда используется для удаления образов с локального хоста.
Пример использования:
- Удаление образа:
docker rmi myIMG
Команда "docker rmi" используется для удаления нескольких образов. С помощью этой команды вы можете удалить образы с указанными идентификаторами или тегами.
Пример использования команды "docker rmi":
docker rmi myIMG:1.0 myotherimage:latest
11. Команда "docker images" служит для вывода списка образов, находящихся на вашем локальном хосте. Она предоставляет информацию о доступных образах, такую как идентификаторы, размеры, теги и другие детали.
Примеры использования команды "docker images":
1. Вывод всех образов:
docker images
2. Вывод образов по конкретному репозиторию:
docker images myrepository/myIMG
12. Управление хранилищами данных в Docker выполняется с помощью команды "docker volume create". Docker тома представляют собой постоянные хранилища данных, которые обеспечивают контейнерам возможность хранить и обмениваться информацией между собой. Использование томов позволяет сохранять данные даже после удаления или перезапуска контейнеров.
Примеры использования команды "docker volume create":
1. Создание нового тома:
docker volume create myvolume
2. Создание тома с указанием драйвера:
docker volume create --driver local myvolume
3. Создание тома с добавлением меток:
(Пример использования меток)
docker volume create --label mylabel=myvalue myvolume
13. Команда "docker run -v" используется для привязки тома к контейнеру при его запуске. Это позволяет контейнеру обращаться к постоянному хранилищу данных, предоставляемому этим томом.
Примеры использования:
Привязка существующего тома:
docker run -v myvolume:/data myIMG
Привязка тома с указанием дополнительных опций (например, read only):
docker run -v myvolume:/data:ro myIMG
14. Команда "docker volume rm" используется для удаления тома с локального хоста. При выполнении этой команды все данные, связанные с удаляемым томом, будут безвозвратно утеряны, поэтому будьте осторожны.
Примеры использования:
Удаление одного тома:
docker volume rm myvolume
Удаление нескольких томов:
docker volume rm first_volume second_volume third_volume
15. Команда "docker volume ls" позволяет вывести список всех доступных томов на локальном хосте. Эта команда предоставляет возможность просмотра существующих томов и получения информации о них, такую как их имена и идентификаторы.
Пример использования:
docker volume ls
После выполнения данной команды будет выведен список всех доступных томов на вашем локальном хосте. Результат будет содержать столбцы с информацией о каждом томе, включая их имена, идентификаторы и дополнительные сведения, если они доступны. Ниже приведен пример вывода:
driver volume name
local myvolume1
local myvolume2
16. Команды Docker Compose
Docker Compose работает поверх Docker и позволяет управлять множеством контейнеров в рамках одного проекта. Ниже приведены основные команды (принципы работы большинства из них вам уже знакомы):
- "docker-compose up" - запускает приложение со всеми контейнерами, информация о которых есть в файле docker-compose.yml. Если файл не указан, по умолчанию используется файл в текущем каталоге.
- "docker-compose down" - останавливает и удаляет все контейнеры, а также тома, связанные с ними.
Команды Docker Compose для управления контейнерами:
- "docker-compose start" - запускает остановленные контейнеры;
- "docker-compose stop" - останавливает работу запущенных контейнеров без их удаления;
- "docker-compose restart" - перезапускает контейнеры;
- "docker-compose build" - позволяет обновить образы или создать их заново, если они были изменены;
- "docker-compose logs" - выводит журналы состояния;
- "docker-compose ps" - отображает текущее состояние контейнеров;
- "docker-compose pull" - загружает последние версии образов для сервисов, описанных в файле docker-compose.yml.
Заключение
Это основные команды Docker, необходимые для управления контейнерами и образами. Они помогут вам эффективно использовать Docker в вашей работе с разработкой программного обеспечения.