cul*_*rón 10 docker docker-image
我做了以下操作并丢失了Docker容器中所有已更改的数据.
docker build -t <name:tag> .
docker run *-p 8080:80* --name <container_name> <name:tag>
docker exec
(导入和处理一些文件,启动服务器来托管它们)然后我想在不同的端口上运行它.docker stop
&docker run
不起作用.相反,我做到了
docker stop
docker rm <container_name>
docker run
(与以前相同的参数)重新启动后,我看到1-3中容器中发生的更改已经消失,并且必须重新运行导入.
下次我该怎么做?
您要做的是从更改后刚刚停止的容器中构建映像。因为您的旧命令仍使用没有新更改的旧图像(您在刚刚停止的容器中进行了更改,而不是在image中)
docker commit --help
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
Run Code Online (Sandbox Code Playgroud)
docker commit -a me new_nginx myrepo/nginx:latest
然后您可以使用刚刚构建的新映像启动容器
但是,如果您不想使用所做的更改来创建映像(例如您不希望将包含密码的配置放在映像中),则可以使用卷挂载
docker run -d -P --name web -v /src/webapp:/webapp training/webapp python app.py
此命令将主机目录/ src / webapp安装到/ webapp的容器中。如果路径/ webapp在容器的映像内已经存在,则/ src / webapp挂载会覆盖,但不会删除先前存在的内容。除去挂载后,即可再次访问内容。这与mount命令的预期行为一致。
归档时间: |
|
查看次数: |
14199 次 |
最近记录: |