当拉取 docker 图像并在我自己的图像中使用它时 - 它会停在最后一行吗?

when pulling docker image and using it in my own image - does it stop at the last line?

我想在此 image 之上构建我的 docker 文件。是 ubuntu + python。 第 3 方 docker 文件:

FROM ubuntu:latest
MAINTAINER fnndsc "dev@babymri.org"

RUN apt-get update \
  && apt-get install -y python3-pip python3-dev \
  && cd /usr/local/bin \
  && ln -s /usr/bin/python3 python \
  && pip3 install --upgrade pip

ENTRYPOINT ["python3"] #this entry point line is my concern

但我想用作我自己的 docker 文件的基础:

FROM fnndsc/ubuntu-python3
RUN pip install enum34 llvmlite numba
RUN mkdir -p ./voice_flask/d
WORKDIR /voice_flask/d
COPY . /voice_flask/d

CMD ["python", "server.py"]

问题:基础映像的 docker 文件在入口点停止 - 但我不需要这个入口点,我有自己的最后一个命令 - 'CMD python server.py'.

那个 ENTRYPOINT 会影响我自己的 docker 文件吗?基础 docker 文件是否被执行并等待 python shell?

编辑:换句话说,是否执行了基础 docker 文件?或者我只是拉取图像,然后我自己的 docker 文件建立在它之上?

您构建的 Docker 映像将从基本映像继承入口点,除非您更改它。如果您对入口点感到满意,则无需执行任何操作。 CMD 定义将哪些参数传递给入口点。如果您对基本入口点 python3 感到满意,您可以:

CMD ["server.py"]

在您的 Docker 文件中。

@paolo 为您提供了使用基础映像中现有入口点的解决方案。

如果您对该入口点不满意,可以参考您自己的入口点

ENTRYPOINT ["my_script", "param1", "param2"]

甚至完全删除它以仅使用 CMD

ENTRYPOINT []