Подробная шпаргалка по командам 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 с примерами