您只需要在构建 docker 镜像时安装 docker 客户端,并/var/run/docker.sock在运行新容器时映射,以启用容器内的 docker 客户端连接主机上的 docker 守护进程,然后您就可以docker像在主机上一样使用命令。
首先,添加命令以在您的 docker-ce 中安装Dockerfile:
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
Run Code Online (Sandbox Code Playgroud)
然后,构建一个新镜像并使用它运行一个新容器:
$ 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
Run Code Online (Sandbox Code Playgroud)
现在,您可以在 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8487 次 |
| 最近记录: |