Шпаргалка с командами Docker
Перевод взят с хабра, оригинал тут. Копирую к себе, чтобы было "под рукой".
Установка
Linux
1 2 3 |
curl -sSL https://get.docker.com/ | sh |
Mac
Скачайте dmg по этой ссылке:
1 2 3 |
<span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/download.docker.com/mac</span><span class="hljs-regexp">/stable/</span>Docker.dmg |
Windows
Используйте MSI-инсталлятор:
1 2 3 |
<span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/download.docker.com/win</span><span class="hljs-regexp">/stable/</span>InstallDocker.msi |
Реестры и репозитории Docker
Вход в реестр
1 2 3 |
docker login |
1 2 3 |
docker login localhost:8080 |
Выход из реестра
1 2 3 |
docker logout |
1 2 3 |
docker logout localhost:8080 |
Поиск образа
1 2 3 |
docker search nginx |
1 2 3 |
docker search nginx -- filter stars=3 --no-trunc busybox |
Pull (выгрузка из реестра) образа
1 2 3 |
docker pull nginx |
1 2 3 |
docker pull eon01/nginx localhost:5000/myadmin/nginx |
Push (загрузка в реестр) образа
1 2 3 |
docker push eon01/nginx |
1 2 3 |
docker push eon01/nginx localhost:5000/myadmin/nginx |
Первые действия с контейнерами
Создание контейнера
1 2 3 |
docker create -t -i eon01/infinite --name infinite |
Первый запуск контейнера
1 2 3 |
docker run -it --name infinite -d eon01/infinite |
Переименование контейнера
1 2 3 |
docker rename infinite infinity |
Удаление контейнера
1 2 3 |
docker rm infinite |
Обновление контейнера
1 2 3 |
docker update --cpu-shares 512 -m 300M infinite |
Запуск и остановка контейнеров
Запуск остановленного контейнера
1 2 3 |
docker start nginx |
Остановка
1 2 3 |
docker stop nginx |
Перезагрузка
1 2 3 |
docker restart nginx |
Пауза (приостановка всех процессов контейнера)
1 2 3 |
docker pause nginx |
Снятие паузы
1 2 3 |
docker unpause nginx |
Блокировка (до остановки контейнера)
1 2 3 |
docker wait nginx |
Отправка SIGKILL (завершающего сигнала)
1 2 3 |
docker kill nginx |
Отправка другого сигнала
1 2 3 |
docker kill -s HUP nginx |
Подключение к существующему контейнеру
1 2 3 |
docker attach nginx |
Получение информации о контейнерах
Работающие контейнеры
1 2 3 |
docker ps |
1 2 3 |
docker ps -a |
Логи контейнера
1 2 3 |
docker logs infinite |
Информация о контейнере
1 2 3 |
docker inspect infinite |
1 2 3 |
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q) |
События контейнера
1 2 3 |
docker events infinite |
Публичные порты
1 2 3 |
docker port infinite |
Выполняющиеся процессы
1 2 3 |
docker top infinite |
Использование ресурсов
1 2 3 |
docker stats infinite |
Изменения в файлах или директориях файловой системы контейнера
1 2 3 |
docker diff infinite |
Управление образами
Список образов
1 2 3 |
docker images |
Создание образов
1 2 3 |
docker build . |
1 2 3 |
docker build github.com/creack/docker-firefox |
1 2 3 |
docker build - < Dockerfile |
1 2 3 |
docker build - < context.tar.gz |
1 2 3 |
docker build -t eon/infinite . |
1 2 3 |
docker build -f myOtherDockerfile . |
1 2 3 |
curl example.com/remote/Dockerfile | docker build -f - . |
Удаление образа
1 2 3 |
docker rmi nginx |
Загрузка репозитория в tar (из файла или стандартного ввода)
1 2 3 |
docker load < ubuntu.tar.gz |
1 2 3 |
docker load --input ubuntu.tar |
Сохранение образа в tar-архив
1 2 3 |
docker save busybox > ubuntu.tar |
Просмотр истории образа
1 2 3 |
docker history |
Создание образа из контейнера
1 2 3 |
docker commit nginx |
Тегирование образа
1 2 3 |
docker tag nginx eon01/nginx |
Push (загрузка в реестр) образа
1 2 3 |
docker push eon01/nginx |
Сеть
Создание сети
1 2 3 |
docker network create -d overlay MyOverlayNetwork |
1 2 3 |
docker network create -d bridge MyBridgeNetwork |
1 2 3 4 5 6 7 8 9 10 11 |
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 |
Удаление сети
1 2 3 |
docker network rm MyOverlayNetwork |
Список сетей
1 2 3 |
docker network ls |
Получение информации о сети
1 2 3 |
docker network inspect MyOverlayNetwork |
Подключение работающего контейнера к сети
1 2 3 |
docker network connect MyOverlayNetwork nginx |
Подключение контейнера к сети при его запуске
1 2 3 |
docker run -it -d --network=MyOverlayNetwork nginx |
Отключение контейнера от сети
1 2 3 |
docker network disconnect MyOverlayNetwork nginx |
Очистка Docker
Удаление работающего контейнера
1 2 3 |
docker rm nginx |
Удаление контейнера и его тома (volume)
1 2 3 |
docker rm -v nginx |
Удаление всех контейнеров со статусом exited
1 2 3 |
docker rm $(docker ps -a -f status=exited -q) |
Удаление всех остановленных контейнеров
1 2 3 |
docker container prune |
1 2 3 |
docker rm `docker ps -a -q` |
Удаление контейнеров, остановленных более суток назад
1 2 3 |
docker container prune --filter "until=24h" |
Удаление образа
1 2 3 |
docker rmi nginx |
Удаление неиспользуемых (dangling) образов
1 2 3 |
docker image prune |
1 2 3 |
docker rmi $(docker images -f dangling=true -q) |
Удаление неиспользуемых (dangling) образов даже с тегами
1 2 3 |
docker image prune -a |
Удаление всех образов
1 2 3 |
docker rmi $(docker images -a -q) |
Удаление всех образов без тегов
1 2 3 |
docker rmi -f $(docker images | grep "^<none>" | awk "{print $3}") |
Остановка и удаление всех контейнеров
1 2 3 |
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) |
Удаление неиспользуемых (dangling) томов
1 2 3 |
docker volume prune |
1 2 3 |
docker volume rm $(docker volume ls -f dangling=true -q) |
Удаление неиспользуемых (dangling) томов по фильтру
1 2 3 |
docker volume prune --filter "label!=keep" |
Удаление неиспользуемых сетей
1 2 3 |
docker network prune |
Удаление всех неиспользуемых объектов
1 2 3 |
docker system prune |
По умолчанию для Docker 17.06.1+ тома не удаляются. Чтобы удалились и они тоже:
1 2 3 |
docker system prune --volumes |
Docker Swarm
Установка Docker Swarm
1 2 3 |
curl -ssl https://get.docker.com | bash |
Прим. перев.: в Docker версий 1.12.0+ ничего дополнительно устанавливать не требуется, т.к. Docker Swarm встроен в Docker Engine в виде специального режима (Swarm mode).
Инициализация Swarm
1 2 3 |
docker swarm init --advertise-addr 192.168.10.1 |
Подключение рабочего узла (worker) к Swarm
1 2 3 |
docker swarm join-token worker |
Подключение управляющего узла (manager) к Swarm
1 2 3 |
docker swarm join-token manager |
Список сервисов
1 2 3 |
docker service ls |
Список узлов
1 2 3 |
docker node ls |
Создание сервиса
1 2 3 |
docker service create --name vote -p 8080:80 instavote/vote |
Список заданий Swarm
1 2 3 |
docker service ps |
Масштабирование сервиса
1 2 3 |
docker service scale vote=3 |
Обновление сервиса
1 2 3 |
docker service update --image instavote/vote:movies vote |
1 2 3 |
docker service update --force --update-parallelism 1 --update-delay 30s nginx |
1 2 3 |
docker service update --update-parallelism 5--update-delay 2s --image instavote/vote:indent vote |
1 2 3 |
docker service update --limit-cpu 2 nginx |
1 2 3 |
docker service update --replicas=5 nginx |
Author: | Tags: /
| Rating:
Leave a Reply