从内部重新启动容器 [英] Restart container from inside
本文介绍了从内部重新启动容器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
推荐答案
您只需在构建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屋!
查看全文