Dockerfile One
FROM ubuntu
FROM docker
CMD ["ls", "/usr/local/bin"]
然后,
docker build -t test .
docker run test
输出:
docker
docker-containerd
docker-containerd-ctr
docker-containerd-shim
docker-entrypoint.sh
docker-init
docker-proxy
docker-runc
dockerd
modprobe
添加了如下的python图像
Dockerfile Two
FROM ubuntu
FROM docker
FROM python:2.7-slim
CMD ["ls", "/usr/local/bin"]
然后,
docker build -t test .
docker run test
输出
2to3
easy_install
easy_install-2.7
idle
pip
pip2
pip2.7
pydoc
python
python-config
python2
python2-config
python2.7
python2.7-config
smtpd.py
wheel
docker二进制文件在第二个测试图像中的位置是什么? 我如何安装python和docker,即/ usr / local / bin中的python和docker可执行文件?
答案 0 :(得分:3)
看起来您正在使用docker多阶段构建。这意味着您生成的图像只包含最后FROM
个。出于同样的原因,您在ubuntu
图片图层中没有docker
内容。
您需要COPY
上一层的二进制文件:
FROM ubuntu
FROM docker as docker
FROM python:2.7-slim
COPY --from=docker /usr/local/bin/* /usr/local/bin/
CMD ["ls", "/usr/local/bin"]
请注意,您还可以按索引引用之前的图像,as
是可选的:
COPY --from=1 /usr/local/bin/* /usr/local/bin/
Dockerfile COPY参考here
多阶段构建文档here