我有一个想要部署的图像。想象一下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
解决方案可用于此部署方案?
答案 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