从内部重新启动容器 [英] Restart container from inside

查看:43
本文介绍了从内部重新启动容器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在批处理作业上,我正在执行大量操作 在码头内。

是否可以从So docker内部发送命令 可以像刚开始一样回来吗?

推荐答案

您只需在构建docker镜像时安装docker客户端,并在运行新容器时映射/var/run/docker.sock,使容器内部的docker客户端能够连接主机上的docker守护进程,即可像在主机上一样使用docker命令。

首先,在Dockerfile中添加安装docker-ce的命令:

FROM centos:7.8.2003

ENV DOCKER_VERSION='19.03.8'

RUN set -ex 
    && DOCKER_FILENAME=https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz 
    && curl -L ${DOCKER_FILENAME} | tar -C /usr/bin/ -xzf - --strip-components 1 docker/docker

然后,构建一个新映像并使用它运行一个新容器:

$ docker build --tag docker-in-docker:v1 .
$ docker run -dit 
             --name docker-in-docker 
             -v /var/run/docker.sock:/var/run/docker.sock:ro 
             docker-in-docker:v1 bash

现在,您可以在docker容器内操作docker-daemon(在主机上)。

$ docker exec -it docker-in-docker docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS               NAMES
bdc2d81b2227        docker-in-docker:v1   "bash"                   8 seconds ago       Up 7 seconds                            docker-in-docker
# just restart the container docker-in-docker in the container docker-in-docker:
$ docker exec docker-in-docker docker restart docker-in-docker

这篇关于从内部重新启动容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆