在Ubuntu服务器上,我运行了一个docker镜像,它是从克隆到directory_a的git存储库构建的。在directory_b中,我有另一个同一个repo的克隆,但是有几个与所有权有关的差异,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>
用新的替换当前版本,但我担心不同的源会导致问题。
答案 0 :(得分:2)
我建议使用新版本号标记您的图像。如果您使用的是docker-compose build
,则需要确保使用标记指定image
密钥。例如:
版本:'3'
服务:
Web应用程序:
建造:。
image:myimage:2.0
您可以在Compose File reference中找到更多信息。 Docker也发布了Best Practices for Working with Dockerfiles。
一旦你对它进行了版本化,你就要确保它存储在注册表Docker Hub / Docker Cloud,Docker Trusted Registry,或者开源Docker Registry都是候选者。确保您知道您的团队想要使用哪个注册表(可能他们已经使用了一个)并将图像推送到那里。