Dockerfile entrypoint/cmd 未在容器导入时执行

Dockerfile entrypoint/cmd not executing on container import

我正在尝试导出一个容器,将其导入,然后 运行。但是,dockerfile 中的 CMD/ENTRYPOINT 没有在导入的容器上执行。

如何在构建镜像时执行 Dockerfile 中指定的相同命令?我知道它可以用 docker run image <cmd> 指定,但是 CMD/ENTRYPOINT 是如何在 export/import 过程中丢失的?而且,importing/exporting 容器有更好的方法吗?

这是 dockerfile:

FROM python:3-alpine

WORKDIR app

ADD ./app.py .
ADD ./requirements.txt .
RUN pip3 install -r requirements.txt

CMD ["python3", "app.py"]

并且命令 运行 相继:

docker build . -t python-app
docker run --name app-container python-app    
docker export app-container > app-container.tar  
docker import app-container.tar "import-container:latest"  
docker run --name import import-container:latest    
# docker: Error response from daemon: No command specified.

docker export 导出容器的文件系统,而不是图像。这就是不导出 CMD 和 ENTRYPOINT 的原因。

如果您想从图像制作 tar 文件,您应该使用 docker savedocker load 而不是 docker exportdocker import