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

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


howto:docker

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
howto:docker [2017/12/02 14:10]
Алексей Кожевников
— (текущий)
Строка 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 
- 
-docker login localhost:​8080 
-</​code>​ 
- 
-==== Выход из реестра ==== 
- 
-<​code>​ 
-docker logout 
- 
-docker logout localhost:​8080 
-</​code>​ 
- 
-==== Поиск образа ==== 
- 
-<​code>​ 
-docker search nginx 
- 
-docker search nginx --filter stars=3 --no-trunc busybox 
-</​code>​ 
- 
-==== Pull (выгрузка из реестра) образа ==== 
- 
-<​code>​ 
-docker pull nginx 
- 
-docker pull eon01/nginx localhost:​5000/​myadmin/​nginx 
-</​code>​ 
- 
-==== Push (загрузка в реестр) образа ==== 
- 
-<​code>​ 
-docker push eon01/nginx 
- 
-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 
- 
-docker ps -a 
-</​code>​ 
- 
-==== Логи контейнера ==== 
- 
-<​code>​ 
-docker logs infinite 
-</​code>​ 
- 
-==== Информация о контейнере ==== 
- 
-<​code>​ 
-docker inspect infinite 
- 
-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 . 
- 
-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 - . 
-</​code>​ 
- 
-==== Удаление образа ==== 
- 
-<​code>​ 
-docker rmi nginx 
-</​code>​ 
- 
-==== Загрузка репозитория в tar (из файла или стандартного ввода) ==== 
- 
-<​code>​ 
-docker load <​ubuntu.tar.gz 
- 
-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 ===== 
- 
-==== Инициализация 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.1512213000.txt.gz · Последние изменения: 2017/12/02 14:10 — Алексей Кожевников