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

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


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.1512211224.txt.gz · Последние изменения: 2017/12/02 13:40 — Алексей Кожевников