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 save
和 docker load
而不是 docker export
和 docker 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 save
和 docker load
而不是 docker export
和 docker import
。