繁体   English   中英

从另一个正在运行的容器重新启动Docker容器

[英]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)

你需要:

  1. 在第二个容器上安装Docker CLI(命令行界面)。 不要与全面安装混淆-您不需要docker daemon,只需命令行工具( docker可执行文件)

  2. 共享您主机的 docker守护进程(服务),以使其在第二个容器中可访问。 这可以通过在启动第二个容器时简单地共享/var/run/docker.sock来实现,例如:

     docker run ... -v "/var/run/docker.sock:/var/run/docker.sock" container2 ... 
  3. 现在,您可以执行任何docker命令,例如从第二个容器执行docker stop ,这些命令会愉快地传递到您的主(也是唯一的)docker守护程序。

CI上下文中有一种方法可以从运行中的容器Docker-out-of-Docker(DooD)控制系统上的Docker守护进程:

  1. 你必须在容器内安装docker
  2. 使用volumes从容器内的系统映射docker安装
  -v /var/run/docker.sock:/var/run/docker.sock

现在,容器中的每个docker命令都在系统docker安装上执行。 例如,如果您在容器中键入docker image list则应该与在系统上键入命令时使用相同的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM