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

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

Table of Contents

Подробная шпаргалка по командам Docker

Docker я использую уже много лет, в своей предыдущей профессиональной деятельности и для клиентов моей компании, и мне хотелось поделиться своими знаниями, поэтому я написал эту Шпаргалка (Cheat Sheet) по командам Docker. Так же ее можно найти на eng в канале DevOps.

Шпаргалка по командам Docker включает: установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm.

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

Установка

Linux

curl -sSL https://get.docker.com/ | sh

Mac

Используйте эту ссылку для загрузки dmg.

https://download.docker.com/mac/stable/Docker.dmg

Windows

Используйте инсталлятор msi:

https://download.docker.com/win/stable/InstallDocker.msi

 

Реестры и репозитории Docker

Вход в реестр

docker login
docker login localhost:8080

Выход из реестра

docker logout
docker logout localhost:8080

Поиск образа

docker search nginx
docker search nginx --stars=3 --no-trunc busybox

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

docker pull nginx
docker pull eon01/nginx localhost:5000/myadmin/nginx

Загрузка образа

docker push eon01/nginx
docker push eon01/nginx localhost:5000/myadmin/nginx

 

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

Создание контейнера

docker create -t -i eon01/infinite --name infinite

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

docker run -it --name infinite -d eon01/infinite

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

docker rename infinite infinity

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

docker rm infinite

Обновление контейнера

docker update --cpu-shares 512 -m 300M infinite

 

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

Запуск

docker start nginx

Остановка

docker stop nginx

Перезапуск

docker restart nginx

Приостановка (пауза)

docker pause nginx

Снятие с паузы

docker unpause nginx

Блокирование контейнера

docker wait nginx

Отправка сообщения SIGKILL

docker kill nginx

Подключение к существующему контейнеру

docker attach nginx

 

Получение информации о контейнерах

Работающие контейнеры

docker ps
docker ps -a

Логи контейнеров

docker logs infinite

Инспектирование контейнеров

docker inspect infinite
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q)

События контейнеров

docker events infinite

Публичные порты

docker port infinite

Запущенные (выполняемые) процессы

docker top infinite

Использование ресурсов контейнера

docker stats infinite

Проверка изменений файлов или каталогов в файловой системе контейнера

docker diff infinite

Управление образами

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

docker images

Создание образов

docker build .
docker build github.com/creack/docker-firefox
docker build - < Dockerfile
docker build - < context.tar.gz
docker build -t eon/infinite .
docker build -f myOtherDockerfile .
curl example.com/remote/Dockerfile | docker build -f - .

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

docker rmi nginx

Загрузка репозитория в формате Tar из файла или стандартного потока ввода

docker load < ubuntu.tar.gz
docker load --input ubuntu.tar

Сохранить образ в архив Tar

docker save busybox > ubuntu.tar

Показать историю образа

docker history

Создание образа из контейнера

docker commit nginx

Тегирование образа

docker tag nginx eon01/nginx

Загрузка образа

docker push eon01/nginx

 

Работа с сетью

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

docker network create -d overlay MyOverlayNetwork
docker network create -d bridge MyBridgeNetwork
docker network create -d overlay \
  --subnet=192.168.0.0/16 \
  --subnet=192.170.0.0/16 \
  --gateway=192.168.0.100 \
  --gateway=192.170.0.100 \
  --ip-range=192.168.1.0/24 \
  --aux-address="my-router=192.168.1.5" --aux-address="my-switch=192.168.1.6" \
  --aux-address="my-printer=192.170.1.5" --aux-address="my-nas=192.170.1.6" \
  MyOverlayNetwork

Удаление сети

docker network rm MyOverlayNetwork

Список сетей

docker network ls

Получение информации о сети

docker network inspect MyOverlayNetwork

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

docker network connect MyOverlayNetwork nginx

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

docker run -it -d --network=MyOverlayNetwork nginx

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

docker network disconnect MyOverlayNetwork nginx

Очистка Docker

Удаление работающего контейнера

docker rm nginx

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

docker rm -v nginx

Удаление всех контейнеров со статусом exited

docker rm $(docker ps -a -f status=exited -q)

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

docker rm `docker ps -a -q`

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

docker rmi nginx

Удаление висячих (dangling) образов

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

Удаление всех образов

docker rmi $(docker images -a -q)

Остановка и удаление всех контейнеров

docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)

Удаление висячих (dangling) томов

docker volume rm $(docker volume ls -f dangling=true -q)

 

Docker Swarm

Установка Docker Swarm

curl -ssl https://get.docker.com | bash

Инициализация Swarm

docker swarm init --advertise-addr 192.168.10.1

Подключение рабочего узла (worker) к Swarm

docker swarm join-token worker

Подключение управляющего узла (manager) к Swarm

docker swarm join-token manager

Список служб

docker service ls

Список узлов

docker node ls

Создание службы

docker service create --name vote -p 8080:80 instavote/vote

Список заданий Swarm

docker service ps

Масштабирование службы

docker service scale vote=3

Обновление службы

docker service update --image instavote/vote:movies vote
docker service update --force --update-parallelism 1 --update-delay 30s nginx
docker service update --update-parallelism 5--update-delay 2s --image instavote/vote:indent vote
docker service update --limit-cpu 2 nginx
docker service update --replicas=5 nginx

 

Возможно вам так же будет интересно:

50 базовых команд Windows с примерами

Как создать разделы диска в Linux?

Полезные горячие клавиши для Bash