|
@@ -1,19 +1,49 @@
|
|
# container-run
|
|
# container-run
|
|
|
|
|
|
-Сервис запускающий контейнер.
|
|
|
|
|
|
+
|
|
|
|
+Образ, обеспечивающий функционал сервиса для классического docker контейнера.
|
|
Полезно, когда необходимо обеспечить функционал сервиса для привилегированного контейнера.
|
|
Полезно, когда необходимо обеспечить функционал сервиса для привилегированного контейнера.
|
|
|
|
|
|
-docker run
|
|
|
|
|
|
+ Создание сервиса. Вместо `docker run`, как при создании контейнера следует использовать `docker service create --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --name <имя-сервиса> dev-registry.infoclinica.ru:5000/container_run:1`
|
|
|
|
+
|
|
|
|
+ Пример создания сервиса для контейнера **nginx-gost**:
|
|
|
|
+
|
|
|
|
+ docker service create \
|
|
|
|
+ --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock \
|
|
|
|
+ --name nginx-gost dev-registry.infoclinica.ru:5000/container_run:1 \
|
|
|
|
+ -p 443:443 -p 80:80 --network=proxy \
|
|
|
|
+ --privileged --security-opt seccomp=unconfined \
|
|
|
|
+ --tmpfs /run --tmpfs /run/lock \
|
|
|
|
+ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
|
|
|
|
+ -e "ADMIN_LAB=dev-admin-lab.infoclinica.lan" \
|
|
|
|
+ -e "ADMIN_WEB=dev-admin-web.infoclinica.lan" \
|
|
|
|
+ -e "NODE_LAB=node-lab.infoclinica.lan" \
|
|
|
|
+ -e "NODE_WEB=node-web.infoclinica.lan" \
|
|
|
|
+ dev-registry.infoclinica.ru:5000/nginx-gost:10
|
|
|
|
+
|
|
|
|
+ Так как параметры рабочего контейнера переданы как "командная строка" сервиса, то обновлять версию образа рабочего контейнера нужно через изменение "командной строки" при помощи директивы `--args` команды `docker service update`. Пример изменения версии nginx-gost:10 на nginx-gost:11 :
|
|
|
|
+
|
|
|
|
+ docker service update \
|
|
|
|
+ --args "-p 443:443 -p 80:80 --network=proxy \
|
|
|
|
+ --privileged --security-opt seccomp=unconfined \
|
|
|
|
+ --tmpfs /run --tmpfs /run/lock \
|
|
|
|
+ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
|
|
|
|
+ -e "ADMIN_LAB=dev-admin-lab.infoclinica.lan" \
|
|
|
|
+ -e "ADMIN_WEB=dev-admin-web.infoclinica.lan" \
|
|
|
|
+ -e "NODE_LAB=node-lab.infoclinica.lan" \
|
|
|
|
+ -e "NODE_WEB=node-web.infoclinica.lan" \
|
|
|
|
+ dev-registry.infoclinica.ru:5000/nginx-gost:11" \
|
|
|
|
+ nginx-gost
|
|
|
|
+
|
|
|
|
|
|
-docker service create \
|
|
|
|
---mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock \
|
|
|
|
---name nginx-gost dev-registry.infoclinica.ru:5000/container_run:1 \
|
|
|
|
--p 443:443 -p 80:80 --network=proxy \
|
|
|
|
---privileged --security-opt seccomp=unconfined \
|
|
|
|
---tmpfs /run --tmpfs /run/lock \
|
|
|
|
--v /sys/fs/cgroup:/sys/fs/cgroup:ro \
|
|
|
|
--e "ADMIN_LAB=dev-admin-lab.infoclinica.lan" \
|
|
|
|
--e "ADMIN_WEB=dev-admin-web.infoclinica.lan" \
|
|
|
|
--e "NODE_LAB=node-lab.infoclinica.lan" \
|
|
|
|
--e "NODE_WEB=node-web.infoclinica.lan" \
|
|
|
|
-dev-registry.infoclinica.ru:5000/nginx-gost:11
|
|
|
|
|
|
+ Для отката изменений до предыдущего состояния, достаточно стандартной команды:
|
|
|
|
+
|
|
|
|
+ docker service rollback nginx-gost
|
|
|
|
+
|
|
|
|
+ Для увеличения количества запущенных копий, достаточно стандартной команды:
|
|
|
|
+
|
|
|
|
+ docker service scale nginx-gost=3
|
|
|
|
+
|
|
|
|
+ Чтобы удалить контейнер с службой, достаточно:
|
|
|
|
+
|
|
|
|
+ docker service rm nginx-gost
|