如何“docker运行”适用于除bash以外的其他可执行文件?

Docker命令运行:

docker运行-it image_name [命令]

执行Docker容器的bash进程中的命令

我最近遇到一个例子,其中的命令正在执行一个不同的解释器,例如python 。 也就是说,如果我要运行以下命令:

docker运行-it image_name –version

我会看到python的版本。 这是如何在Dockerfile中实现将默认的可执行环境转移到其他程序?

让我们通过考虑下面的例子来理解这一点:

# cat Dockerfile FROM ubuntu:14.04 RUN apt-get update && \ apt-get install -y python 

这个Dockerfile只是安装python包并build立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构build的docker镜像,它执行作为它的一部分的命令。 所以它可以运行如下:

 # docker run -it example:2.0 --version Python 2.7.6 

这样您可以自定义Dockerfiles,并可以运行脚本或可执行文件。