使用配置文件进行映像部署

时间:2015-11-09 22:06:02

标签: docker

我有一个想要部署的图像。想象一下myapp:latest图片中的网络应用程序:

FROM debian:jessie
[...]
EXPOSE 80
CMD ["/bin/bash", "/bin/run_myapp.sh"]

/bin/run_myapp.sh /etc/myapp.conf 加载配置文件。 要使用3个不同的配置文件部署3个实例,我想做类似的事情:

C1=$(docker run -d myapp)
C2=$(docker run -d myapp)
C3=$(docker run -d myapp) 
...

docker cp myapp1.conf $C1:/etc/myapp.conf
docker cp myapp2.conf $C2:/etc/myapp.conf
docker cp myapp3.conf $C3:/etc/myapp.conf

但是有了这个想法,容器已经在运行,所以 /bin/run_myapp.sh 已经读过 /etc/myapp.conf 。如果在启动myapp之前我docker cp,则容器不存在。

哪种docker解决方案可用于此部署方案?

1 个答案:

答案 0 :(得分:0)

解决方案是在口渴步骤中使用create,然后执行cp和最后start容器。

C1=$(docker create myapp)
C2=$(docker create myapp)
C3=$(docker create myapp) 

docker cp myapp1.conf $C1:/etc/myapp.conf
docker cp myapp2.conf $C2:/etc/myapp.conf
docker cp myapp3.conf $C3:/etc/myapp.conf 

docker start $C1
docker start $C2
docker start $C3
相关问题