Инструменты пользователя

Инструменты сайта


howto:docker

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
howto:docker [2017/12/02 13:40]
Алексей Кожевников
— (текущий)
Строка 1: Строка 1:
-====== docker ====== 
- 
-Dockerfile 
- 
-<​code>​ 
-FROM centos:6 
-RUN yum clean all 
-&& yum install -y https://​dl.fedoraproject.org/​pub/​epel/​epel-release-latest-6.noarch.rpm 
- 
-&& yum install -y bash-completion createrepo curl git htop lsof mc nano openssh-server rsync sysstat tcpdump telnet traceroute unzip wget 
-&& yum clean all 
-RUN rm -rf 
- 
-CMD ["/​bin/​bash"​] 
-</​code>​ 
- 
-<​code>​ 
-docker run -p 8083:8083 -p 8086:8086 -p 2003:2003 
-    -e INFLUXDB_GRAPHITE_ENABLED=true 
-    influxdb 
-</​code>​ 
- 
-===== Реестры и репозитории Docker ===== 
- 
-==== Вход в реестр ==== 
- 
-<​code>​ 
-''​docker login''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker login localhost:​8080''​ 
-</​code>​ 
- 
-==== Выход из реестра ==== 
- 
-<​code>​ 
-''​docker logout''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker logout localhost:​8080''​ 
-</​code>​ 
- 
-==== Поиск образа ==== 
- 
-<​code>​ 
-''​docker search nginx''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker search nginx -- filter stars=3 --no-trunc busybox''​ 
-</​code>​ 
- 
-==== Pull (выгрузка из реестра) образа ==== 
- 
-<​code>​ 
-''​docker pull nginx''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker pull eon01/nginx localhost:​5000/​myadmin/​nginx''​ 
-</​code>​ 
- 
-==== Push (загрузка в реестр) образа ==== 
- 
-<​code>​ 
-''​docker push eon01/​nginx''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker push eon01/nginx localhost:​5000/​myadmin/​nginx''​ 
-</​code>​ 
- 
-===== Первые действия с контейнерами ===== 
- 
-==== Создание контейнера ==== 
- 
-<​code>​ 
-''​docker create -t -i eon01/​infinite --name infinite''​ 
-</​code>​ 
- 
-==== Первый запуск контейнера ==== 
- 
-<​code>​ 
-''​docker run -it --name infinite -d eon01/​infinite''​ 
-</​code>​ 
- 
-==== Переименование контейнера ==== 
- 
-<​code>​ 
-''​docker rename infinite infinity''​ 
-</​code>​ 
- 
-==== Удаление контейнера ==== 
- 
-<​code>​ 
-''​docker rm infinite''​ 
-</​code>​ 
- 
-==== Обновление контейнера ==== 
- 
-<​code>​ 
-''​docker update --cpu-shares 512 -m 300M infinite''​ 
-</​code>​ 
- 
-===== Запуск и остановка контейнеров ===== 
- 
-==== Запуск остановленного контейнера ==== 
- 
-<​code>​ 
-''​docker start nginx''​ 
-</​code>​ 
- 
-==== Остановка ==== 
- 
-<​code>​ 
-''​docker stop nginx''​ 
-</​code>​ 
- 
-==== Перезагрузка ==== 
- 
-<​code>​ 
-''​docker restart nginx''​ 
-</​code>​ 
- 
-==== Пауза (приостановка всех процессов контейнера) ==== 
- 
-<​code>​ 
-''​docker pause nginx''​ 
-</​code>​ 
- 
-==== Снятие паузы ==== 
- 
-<​code>​ 
-''​docker unpause nginx''​ 
-</​code>​ 
- 
-==== Блокировка (до остановки контейнера) ==== 
- 
-<​code>​ 
-''​docker wait nginx''​ 
-</​code>​ 
- 
-==== Отправка SIGKILL (завершающего сигнала) ==== 
- 
-<​code>​ 
-''​docker kill nginx''​ 
-</​code>​ 
- 
-==== Отправка другого сигнала ==== 
- 
-<​code>​ 
-''​docker kill -s HUP nginx''​ 
-</​code>​ 
- 
-==== Подключение к существующему контейнеру ==== 
- 
-<​code>​ 
-''​docker attach nginx''​ 
-</​code>​ 
- 
-===== Получение информации о контейнерах ===== 
- 
-==== Работающие контейнеры ==== 
- 
-<​code>​ 
-''​docker ps''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker ps -a''​ 
-</​code>​ 
- 
-==== Логи контейнера ==== 
- 
-<​code>​ 
-''​docker logs infinite''​ 
-</​code>​ 
- 
-==== Информация о контейнере ==== 
- 
-<​code>​ 
-''​docker inspect infinite''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q)''​ 
-</​code>​ 
- 
-==== События контейнера ==== 
- 
-<​code>​ 
-''​docker events infinite''​ 
-</​code>​ 
- 
-==== Публичные порты ==== 
- 
-<​code>​ 
-''​docker port infinite''​ 
-</​code>​ 
- 
-==== Выполняющиеся процессы ==== 
- 
-<​code>​ 
-''​docker top infinite''​ 
-</​code>​ 
- 
-==== Использование ресурсов ==== 
- 
-<​code>​ 
-''​docker stats infinite''​ 
-</​code>​ 
- 
-==== Изменения в файлах или директориях файловой системы контейнера ==== 
- 
-<​code>​ 
-''​docker diff infinite''​ 
-</​code>​ 
- 
-===== Управление образами ===== 
- 
-==== Список образов ==== 
- 
-<​code>​ 
-''​docker images''​ 
-</​code>​ 
- 
-==== Создание образов ==== 
- 
-<​code>​ 
-''​docker build .''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker build github.com/​creack/​docker-firefox''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker build - <​Dockerfile''​ 
-</​file><​code>''​docker build - <​context.tar.gz''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker build -t eon/​infinite .''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker build -f myOtherDockerfile .''​ 
-</​file><​code>''​curl example.com/​remote/​Dockerfile | docker build -f - .''​ 
-</​file>​==== Удаление образа ==== 
- 
-<​code>''​docker rmi nginx''​ 
-</​code>​ 
- 
-==== Загрузка репозитория в tar (из файла или стандартного ввода) ==== 
- 
-<​code>​ 
-''​docker load <​ubuntu.tar.gz''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker load --input ubuntu.tar''​ 
-</​code>​ 
- 
-==== Сохранение образа в tar-архив ==== 
- 
-<​code>​ 
-''​docker save busybox> ubuntu.tar''​ 
-</​code>​ 
- 
-==== Просмотр истории образа ==== 
- 
-<​code>​ 
-''​docker history''​ 
-</​code>​ 
- 
-==== Создание образа из контейнера ==== 
- 
-<​code>​ 
-''​docker commit nginx''​ 
-</​code>​ 
- 
-==== Тегирование образа ==== 
- 
-<​code>​ 
-''​docker tag nginx eon01/​nginx''​ 
-</​code>​ 
- 
-==== Push (загрузка в реестр) образа ==== 
- 
-<​code>​ 
-''​docker push eon01/​nginx''​ 
-</​code>​ 
- 
-===== Сеть ===== 
- 
-==== Создание сети ==== 
- 
-<​code>​ 
-''​docker network create -d overlay MyOverlayNetwork''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker network create -d bridge MyBridgeNetwork''​ 
-</​code>​ 
- 
-<​code>​ 
-''​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''​ 
-</​code>​ 
- 
-==== Удаление сети ==== 
- 
-<​code>​ 
-''​docker network rm MyOverlayNetwork''​ 
-</​code>​ 
- 
-==== Список сетей ==== 
- 
-<​code>​ 
-''​docker network ls''​ 
-</​code>​ 
- 
-==== Получение информации о сети ==== 
- 
-<​code>​ 
-''​docker network inspect MyOverlayNetwork''​ 
-</​code>​ 
- 
-==== Подключение работающего контейнера к сети ==== 
- 
-<​code>​ 
-''​docker network connect MyOverlayNetwork nginx''​ 
-</​code>​ 
- 
-==== Подключение контейнера к сети при его запуске ==== 
- 
-<​code>​ 
-''​docker run -it -d --network=MyOverlayNetwork nginx''​ 
-</​code>​ 
- 
-==== Отключение контейнера от сети ==== 
- 
-<​code>​ 
-''​docker network disconnect MyOverlayNetwork nginx''​ 
-</​code>​ 
- 
-===== Очистка Docker ===== 
- 
-==== Удаление работающего контейнера ==== 
- 
-<​code>​ 
-''​docker rm nginx''​ 
-</​code>​ 
- 
-==== Удаление контейнера и его тома (volume) ==== 
- 
-<​code>​ 
-''​docker rm -v nginx''​ 
-</​code>​ 
- 
-==== Удаление всех контейнеров со статусом exited ==== 
- 
-<​code>​ 
-''​docker rm $(docker ps -a -f status=exited -q)''​ 
-</​code>​ 
- 
-==== Удаление всех остановленных контейнеров ==== 
- 
-<​code>​ 
-''​docker container prune''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker rm `docker ps -a -q`''​ 
-</​code>​ 
- 
-==== Удаление контейнеров,​ остановленных более суток назад ==== 
- 
-<​code>​ 
-''​docker container prune --filter "​until=24h"''​ 
-</​code>​ 
- 
-==== Удаление образа ==== 
- 
-<​code>​ 
-''​docker rmi nginx''​ 
-</​code>​ 
- 
-==== Удаление неиспользуемых (dangling) образов ==== 
- 
-<​code>​ 
-''​docker image prune''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker rmi $(docker images -f dangling=true -q)''​ 
-</​code>​ 
- 
-==== Удаление неиспользуемых (dangling) образов даже с тегами ==== 
- 
-<​code>​ 
-''​docker image prune -a''​ 
-</​code>​ 
- 
-==== Удаление всех образов ==== 
- 
-<​code>​ 
-''​docker rmi $(docker images -a -q)''​ 
-</​code>​ 
- 
-==== Удаление всех образов без тегов ==== 
- 
-<​code>​ 
-''​docker rmi -f $(docker images | grep "​^<​none>"​ | awk "​{print $3}"​)''​ 
-</​code>​ 
- 
-==== Остановка и удаление всех контейнеров ==== 
- 
-<​code>​ 
-''​docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)''​ 
-</​code>​ 
- 
-==== Удаление неиспользуемых (dangling) томов ==== 
- 
-<​code>​ 
-''​docker volume prune''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker volume rm $(docker volume ls -f dangling=true -q)''​ 
-</​code>​ 
- 
-==== Удаление неиспользуемых (dangling) томов по фильтру ==== 
- 
-<​code>​ 
-''​docker volume prune --filter "​label!=keep"''​ 
-</​code>​ 
- 
-==== Удаление неиспользуемых сетей ==== 
- 
-<​code>​ 
-''​docker network prune''​ 
-</​code>​ 
- 
-==== Удаление всех неиспользуемых объектов ==== 
- 
-<​code>​ 
-''​docker system prune''​ 
-</​code>​ 
- 
-По умолчанию для Docker 17.06.1+ тома не удаляются. Чтобы удалились и они тоже: 
- 
-<​code>​ 
-''​docker system prune --volumes''​ 
-</​code>​ 
- 
-===== Docker Swarm ===== 
- 
-==== Установка Docker Swarm ==== 
- 
-<​code>​ 
-''​curl -ssl https://​get.docker.com | bash''​ 
-</​code>​ 
- 
-\\ 
-//​**Прим. перев.**:​ в Docker версий 1.12.0+ ничего дополнительно устанавливать не требуется,​ т.к. Docker Swarm встроен в Docker Engine в виде специального режима (Swarm mode).// 
-==== Инициализация Swarm ==== 
- 
-<​code>​ 
-''​docker swarm init --advertise-addr 192.168.10.1''​ 
-</​code>​ 
- 
-==== Подключение рабочего узла (worker) к Swarm ==== 
- 
-<​code>​ 
-''​docker swarm join-token worker''​ 
-</​code>​ 
- 
-==== Подключение управляющего узла (manager) к Swarm ==== 
- 
-<​code>​ 
-''​docker swarm join-token manager''​ 
-</​code>​ 
- 
-==== Список сервисов ==== 
- 
-<​code>​ 
-''​docker service ls''​ 
-</​code>​ 
- 
-==== Список узлов ==== 
- 
-<​code>​ 
-''​docker node ls''​ 
-</​code>​ 
- 
-==== Создание сервиса ==== 
- 
-<​code>​ 
-''​docker service create --name vote -p 8080:80 instavote/​vote''​ 
-</​code>​ 
- 
-==== Список заданий Swarm ==== 
- 
-<​code>​ 
-''​docker service ps''​ 
-</​code>​ 
- 
-==== Масштабирование сервиса ==== 
- 
-<​code>​ 
-''​docker service scale vote=3''​ 
-</​code>​ 
- 
-==== Обновление сервиса ==== 
- 
-<​code>​ 
-''​docker service update --image instavote/​vote:​movies vote''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker service update --force --update-parallelism 1 --update-delay 30s nginx''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker service update --update-parallelism 5--update-delay 2s --image instavote/​vote:​indent vote''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker service update --limit-cpu 2 nginx''​ 
-</​code>​ 
- 
-<​code>​ 
-''​docker service update --replicas=5 nginx''​ 
-</​code>​ 
- 
-{{tag> docker }} 
- 
  
howto/docker.1512211232.txt.gz · Последние изменения: 2017/12/02 13:40 — Алексей Кожевников