Skip to content

Шпаргалка по командам Docker

Docker — это движок контейнеризации приложений с открытым исходным кодом, который позволяет разработчикам упаковывать свои приложения и зависимости в переносимый образ, который затем можно развернуть на любой популярной машине с Linux или Windows, а также добиться виртуализации. Контейнеры полностью используют механизм песочницы (sandbox) и не имеют никаких интерфейсов между собой.

Общее использование

Запустить контейнер в фоновом режиме

docker run -d jenkins

Запустить интерактивный контейнер

docker run -it ubuntu bash

Запустить контейнер, который автоматически удаляется при остановке

docker run --rm ubuntu bash 

Запустить контейнер с сопоставлением портов

docker run -p 80:80 -d nginx 

Запустить именованный контейнер

docker run --name mydb redis 

Запустить остановленный контейнер

docker start mydb 

Остановить контейнер

docker stop mydb

Запустить контейнер и добавить метаданные

docker run -d \ label=traefik.backend=jenkins jenkins

Сборка образов (Build Images)

Собрать образ из Dockerfile в текущем каталоге

docker build --tag myimage . 

Принудительно пересобрать образ

docker build --no-cache . 

Сохранить изменения в контейнере в виде образа (Commit)

docker commit c7337 myimage 

Удалить все неиспользуемые образы

docker rmi $(docker images -q -f "dangling=true")

Отладка (Debug)

Войти в работающий контейнер

docker exec -it c7337 docker

Показать логи активности работающего контейнера-демона

docker logs -f c7337

Показать открытые порты контейнера

docker port c7337

Тома (Volumes)

Создать локальный том

docker volume create --name myvol 

Смонтировать том при запуске контейнера

docker run -v myvol:/data redis

Удалить том

docker volume rm myvol 

Список всех томов

docker volume ls

Создать локальную сеть

docker network create mynet 

Подключить контейнер к сети при запуске

docker run -d --net mynet redis

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

docker network connect mynet c7337 

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

docker network disconnect mynet c7337

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

Список работающих контейнеров

docker ps

Список всех контейнеров (включая работающие и остановленные)

docker ps -a

Инспекция метаданных контейнера

docker inspect c7337

Список всех доступных локально образов

docker images

Удалить все остановленные контейнеры

docker rm $(docker ps --filter status=exited -q) 

Список всех контейнеров с определенной меткой

docker ps --filter label=traefik.backend

Запросить работающий контейнер с определенными метаданными

docker inspect -f '{{ .NetworkSettings.IPAddress }}' c7337

Описание

Имя образа

redis, jenkins, nginx

Имя контейнера или ID коммита

mydb  # имя контейнера 
c7337 # ID коммита