在Ubuntu服务器上,我运行了一个docker镜像,它是从克隆到directory_a中的git存储库构建的,在directory_b中,我有另一个相同存储库的克隆,但在所有权方面有几个不同,git忽略了文件,并使用了不同的分支。展望未来,directory_b将成为新的工作目录。我的问题是,如何用directory_b的新版本替换当前的版本?
两个副本中的Dockerfile
和docker-compose.yml
文件是相同的,除非我对其进行更改,否则新镜像的名称将与旧镜像相同。这是应该改变的吗?
我没有参与初始设置,也没有太多使用Docker的经验,真的,真的不想破坏任何东西。看起来我可以用
docker-compose build <service_name>
docker-compose stop <service_name>
docker-compose up -d --no-deps <service_name>
用新的版本替换当前的版本,但我担心不同的源会导致问题。
发布于 2017-08-29 04:32:24
我建议给你的图片加上一个新的版本号。如果你使用的是docker-compose build
,你需要确保你指定的是一个带有标签的image
键。例如: version:'3‘services: webapp: build:。图片来源: myimage:2.0
您可以在Compose File reference中找到更多信息。此外,Docker还发布了一个Best Practices for Working with Dockerfiles。
一旦您对其进行了版本化,您就需要确保它存储在Docker Hub/Docker Cloud注册表中,或者Docker Trusted Registry,或者开源Docker registry都是候选对象。确保您知道您的团队希望使用哪个注册表(他们可能已经在使用一个注册表),并将映像推送到那里。
https://stackoverflow.com/questions/45926266
复制相似问题