Docker命令运行:
docker run -it image_name [commands]
在Docker容器的bash进程中执行命令。
我最近遇到了一个例子,其中命令正在另一个解释器中执行,例如 python 。也就是说,如果我要运行以下命令:
docker run -it image_name --version
我会看到python的版本。如何在Dockerfile中实际实现将默认可执行环境转移到其他程序?
答案 0 :(得分:0)
让我们通过考虑以下例子来理解这一点:
# cat Dockerfile
FROM ubuntu:14.04
RUN apt-get update && \
apt-get install -y python
这个 Dockerfile只安装python包并构建docker镜像,通过它可以运行如下命令:
# docker run -it example:3.0 /bin/bash
root@ee65d228ce3b:/#
root@ee65d228ce3b:/# which python
/usr/bin/python
root@ee65d228ce3b:/# python --version
Python 2.7.6
root@ee65d228ce3b:/#
让我们的另一个Dockerfile与上面的略有不同:
# cat Dockerfile
FROM ubuntu:14.04
RUN apt-get update && \
apt-get install -y python
ENTRYPOINT ["/usr/bin/python"]
此Dockerfile中的附加内容是它具有ENTRYPOINT ,它表示当您运行从此Dockerfile构建的docker镜像时,它会执行作为其一部分的命令。所以它可以运行:
# docker run -it example:2.0 --version
Python 2.7.6
这样您就可以自定义Dockerfiles并运行脚本或可执行文件。