【发布时间】:2017-02-07 16:42:08
【问题描述】:
作为构建的一部分,我需要生成一个 docker 映像,因此我需要在我的 CoreOS docker 容器中安装 docker,但我似乎无法 apt-get 安装它(找不到 docker-engine 或 docker.io) ;它确实找到了docker,这似乎是一个我可以运行的python模块。
如何在我的容器上安装 docker?
谢谢。
【问题讨论】:
作为构建的一部分,我需要生成一个 docker 映像,因此我需要在我的 CoreOS docker 容器中安装 docker,但我似乎无法 apt-get 安装它(找不到 docker-engine 或 docker.io) ;它确实找到了docker,这似乎是一个我可以运行的python模块。
如何在我的容器上安装 docker?
谢谢。
【问题讨论】:
其实 CoreOS 是为了运行 docker 而不是 docker 容器。
如果你只需要从你的构建容器生成 docker 镜像(而不是搞乱特权容器和 docker-inside-docker 的许多问题),你可以挂载主机的 docker socket 以便能够创建容器:
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
假设您使用 Ubuntu docker 映像启动了一个容器,该容器将能够在主机 docker daemon 上创建容器,但看起来您拥有 docker-in-docker:
docker run -it -v /var/run/docker.sock:/var/run/docker.sock ubuntu:latest sh -c "apt-get update ; apt-get install docker.io -y ; bash"
现在您在 docker 容器中,它与主机“共享” docker 空间:
root@01a656c6056a:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
01a656c6056a ubuntu:16.04 "sh -c 'apt-get updat" 2 minutes ago Up 2 minutes hungry_ardinghelli
【讨论】: