我尝试导出一个容器,导入它,然后运行它。但是,dockerfile中的CMD/ENTRYPOINT
没有在导入的容器上执行。
如何执行构建映像时在Dockerfile中指定的相同命令?我知道可以使用docker run image <cmd>
指定它,但是,CMD/ENTRYPOINT
在导出/导入过程中如何丢失?还有,是否有更好的方法导入/导出容器?
下面是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.
2条答案
按热度按时间toe950271#
docker export
导出的是容器的文件系统,而不是映像,这就是CMD和ENTRYPOINT不被导出的原因。如果要从映像创建tar文件,则应使用
docker save
和docker load
,而不是docker export
和docker import
。yruzcnhs2#
执行
docker import
时,需要执行以下操作: