joe*_*mow 5 docker docker-compose
我在理解docker的这一部分时遇到了麻烦。我花了许多天做了这项研究,并横跨东西来了,如同docker-compose和docker container commit。如果我有一个映像,并且对我的代码库进行了更改,那么如何通过代码更改来更新我的Docker映像?我以为Dockerfile应该可以解决这个问题,但是它对我不起作用。任何帮助表示赞赏。
你可以试试docker-compose up --force-recreate;或者,如果您对 Dockerfile 进行了更改,则可能需要重新构建它。您可以通过使用docker-compose build(您可以--no-cache在末尾附加以强制下载依赖项等)来执行此操作。
请注意,在某些情况下,您可能必须使用删除创建的图像/构建/容器docker system prune(您可以在其末尾附加 -a 以删除任何已停止的容器和所有未使用的图像——而不仅仅是悬空的图像)。然后使用docker-compose build.
您还可以使用docker stop $(docker ps -a -q)后跟docker rm $(docker ps -a -q)来停止和删除所有 docker 容器。
希望这会为您指明正确的方向,祝您好运!
Dockerfile负责创建可用于运行容器的docker映像。如果要更新映像配置或映像中的应用程序代码库,则需要重建映像。
例如,您可能有一个在构建过程中拉出代码库的Dockerfile,在这种情况下,每当需要包含新代码时,您都需要重新构建映像。或者说您需要更新应用程序的生产版本,那么您需要重建包含应用程序稳定分支的新版本的映像。
同样,如果将其用于开发,则可能需要将应用程序目录挂载为卷,这样就可以立即查看更改,而无需重建docker映像,除非需要这样做。
因为docker-compose您可以认为它类似于docker run命令,它提供了一种从特定映像运行容器的简便方法,包括暴露端口或安装卷或将多个容器链接在一起等。
参考文献:
有两种选择。
1.1. 首先,通过运行删除以前的图像,
docker rmi 'image_id' or docker rmi -f 'image_id'
Run Code Online (Sandbox Code Playgroud)
1.2. 然后通过运行重新创建图像,
docker-compose up
Run Code Online (Sandbox Code Playgroud)
如果您使用 docker 命令运行,
码头工人构建
| 归档时间: |
|
| 查看次数: |
9497 次 |
| 最近记录: |