Шпаргалка по командам Docker
Запуск контейнера
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
[ OPTIONS ]
-it — интерактивный режим. Перейти в контейнер и запустить внутри контейнера команду
-d — запустить контейнер в фоне (демоном) и вывести его ID
-p port_localhost:port_docker_image — порты из докера на локалхост
-e «TZ=Europe/Moscow» — указываем нашему контейнеру timezone
-h HOSTNAME — присвоить имя хоста контейнеру
— link <имя контейнера> — связать контейнеры с другим
-v /local/path:/container/path/ — прокидываем в контейнер докера директорию с локальной машины
--name CONTAINERNAME — присвоить имя нашему контейнеру
--restart=[no/on-failure/always/unless-stopped] — варианты перезапуска контейнера при крэше
Запуск контейнера
docker start <CONTAINER_NAME>
Остановка контейнера
docker stop <CONTAINER_NAME>
Перезагрузка контейнера
docker restart <CONTAINER_NAME>
Подключение к существующему контейнеру
docker attach <CONTAINER_NAME>
Показать образы и контейнеры
# Вывести все образы (images)
docker images -a
# Вывести все неиспользуемые образы
docker images -f dangling=true
# Выведет список запущенных контейнеров, если добавить ключ -a, выведет список всех контейнеров.
docker ps
Удаление образов
# Для удаления используется команда docker rmi с добавлением ИД или тега, например:
# с ключом --force удалит контейнер и образ
docker rmi abb461727af5
# Удаление всех образов
docker rmi $(docker images -a -q)
# Удаление всех неиспользуемых образов
docker images prune
docker rmi $(docker images -f dangling=true -q)
# Удаление всех неиспользуемых (не связанных с контейнерами) образов:
# Если добавить к команде ключ -a, то произойдет удаление всех остановленных контейнеров и неиспользуемых образов.
docker system prune
# Удаление всех образов без тегов
docker rmi -f $(docker images | grep "^<none>" | awk "{print $3}")
# Удаление всех образов
docker rmi $(docker images -a -q)
Удаление контейнеров
# Для удаления контейнера, его необходимо сначала остановить командой ниже с указанием ID или названия контейнера.
docker stop CONTAINER_ID
# Для удаления контейнера используется команда docker rm с добавлением ИД или названия
docker rm CONTAINER_ID
# Удаление контейнера и его тома (volume)
docker rm -v CONTAINER_ID
# Удаление всех контейнеров со статусом exited
docker rm $(docker ps -a -f status=exited -q)
# Удаление всех остановленных контейнеров
docker container prune
docker rm `docker ps -a -q`
# Удаление контейнеров, остановленных более суток назад
docker container prune --filter "until=24h"
# Остановка и удаление всех контейнеров
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
Удаление томов
#Вывести список всех томов с их названиями.
docker volume ls
# Удаление volumes по названию
docker rm <volume_name>
# Вывести список всех томов не связанных с контейнерами
docker volume ls -f dangling=true
# Удаление томов (volumes) несвязанных с контейнерами
docker volume prune
docker volume rm $(docker volume ls -f dangling=true -q)
# Удаление неиспользуемых (dangling) томов по фильтру
docker volume prune --filter "label!=keep"
Удаление сетей
# Вывести список всех сетей с их ИД и названиями.
docker network ls
# Для удаления используется команда с добавлением ИД или названия:
docker network rm NETWORK_ID
# Удалит все сети не используемые хотя бы одним контейнером.
docker network prune
Удаление всех неиспользуемых объектов
docker system prune
# По умолчанию для Docker 17.06.1+ тома не удаляются. Чтобы удалились и они тоже:
docker system prune --volumes