[英]Restart a docker container from another running container
我正在使用docker-compose进行部署。 我想从“ centos-2”容器重新启动“ centos-1”容器。 两个容器都在同一主机上运行。 请提出建议,我该如何以最简单和自动化的方式实现这一目标?
我关注了如何从Docker容器在主机上运行Shell脚本? 并尝试从“ centos-2”容器在主机上运行脚本,但是脚本在容器内而不是在主机上执行。
脚本:
#!/bin/bash
sudo docker container restart centos-1
错误:
line 2: docker: command not found
(没有在任何centos-2容器中安装Docker)
你需要:
在第二个容器上安装Docker CLI(命令行界面)。 不要与全面安装混淆-您不需要docker daemon,只需命令行工具( docker
可执行文件)
共享您主机的 docker守护进程(服务),以使其在第二个容器中可访问。 这可以通过在启动第二个容器时简单地共享/var/run/docker.sock
来实现,例如:
docker run ... -v "/var/run/docker.sock:/var/run/docker.sock" container2 ...
现在,您可以执行任何docker命令,例如从第二个容器执行docker stop
,这些命令会愉快地传递到您的主(也是唯一的)docker守护程序。
CI上下文中有一种方法可以从运行中的容器Docker-out-of-Docker(DooD)控制系统上的Docker守护进程:
volumes
从容器内的系统映射docker安装 -v /var/run/docker.sock:/var/run/docker.sock
现在,容器中的每个docker命令都在系统docker安装上执行。 例如,如果您在容器中键入docker image list
则应该与在系统上键入命令时使用相同的列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.