Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建自定义python docker映像_Python_Docker - Fatal编程技术网

创建自定义python docker映像

创建自定义python docker映像,python,docker,Python,Docker,我有一个python代码,我想为它创建一个docker映像。现在根据我的理解,我们需要一个Dockerfile和python代码code.py。在Dockerfile中,我们需要编写: FROM python:3 ADD code.py / RUN pip3 install imapclient CMD [ "python", "./code.py" ] 我的第一个问题是关于这个Dockerfile。首先,我们提到了python:3中的,因为我们想使用python3。接下来,我们添加了代

我有一个python代码,我想为它创建一个docker映像。现在根据我的理解,我们需要一个
Dockerfile
和python代码
code.py
。在
Dockerfile
中,我们需要编写:

FROM python:3

ADD code.py /

RUN pip3 install imapclient

CMD [ "python", "./code.py" ]
我的第一个问题是关于这个
Dockerfile
。首先,我们提到了python:3中的
,因为我们想使用
python3
。接下来,我们添加了代码。在
RUN
中,我们可以编写代码的依赖项。因此,例如,如果我们的代码需要python包
imapclient
,我们可以在这里提到它,以便在构建docker文件之前安装它。但是如果我们的代码没有任何要求呢这行
RUN
重要吗。我们可以在不需要时排除它吗?


现在让我们假设我们终于通过使用命令
docker build-t python hello-world创建了docker映像
python hello-world
。我可以使用命令
docker images-a
查看它。现在,当我执行
docker ps
时,它没有列在那里,因为容器没有运行。现在开始,我必须做
docker运行pythonhelloworld
。这将启动代码。但我希望它总是像Linux服务一样在后台运行。怎么做?

这条线路重要吗?当我们不需要它时,我们能排除它吗

是如果您的代码不需要软件包,则可以将其排除。

但我希望它总是像Linux服务一样在后台运行。怎么做

如果您想将其作为后台运行,请使用下面的命令

docker run -d --restart=always python-hello-world

这将在后台启动容器,并在系统重新启动时自动启动。

我实际使用了
--restart
标志,但没有使用-d,因此它给了我一个错误。好的,谢谢。还有一个问题,当我们使用docker build命令时,为什么我们在最后使用
。参考linux中的当前目录,docker build。意味着它使用当前目录中的dockerfile,如果我们从另一个目录运行命令,我们需要给出路径而不是
。?