在docker中,为什么将一个数据卷容器安装到一个容器中使其停止工作?

我正在使用这个docker图像 ,并能够成功运行它作为一个容器(使用dockerhub中存在的docker运行命令)。 但是我想使所述容器的/ var / www /文件夹保持不变。

所以,我试过这个命令来运行映射到它的卷的容器。

docker run -v /home/ejandra/ispconfig:/var/www --name ispconfig -e MAILMAN_EMAIL_HOST=test.com -e MAILMAN_EMAIL=test@test.com -e MAILMAN_PASS=pass -d -p 20:20 -p 21:21 -p 30000:30000 -p 30001:30001 -p 30002:30002 -p 30003:30003 -p 30004:30004 -p 30005:30005 -p 30006:30006 -p 30007:30007 -p 30008:30008 -p 30009:30009 -p 80:80 -p 443:443 -p 8080:8080 -p 53:53 -p 2222:22 jerob/docker-ispconfig /start.sh 

这是映射到一个数据量,无论哪里/var/www的内容。 卷映射工程,因为每当我尝试通过shell访问添加一个新的文本文件到/var/www ,我看到/home/ejandra/ispconfig的文件。 但是,当我转到https:// my-ip:8080时 ,浏览器显示“无法访问该站点”。 在添加数据量之后,我的容器突然停止工作的原因是什么?

我能够通过首先将所有东西复制到主机上的文件夹然后运行容器来达到你想要的效果。 所以,这就是我所做的:

首先,像平常一样运行容器:

 sudo docker run -name ispconfig -e MAILMAN_EMAIL_HOST=test.com \ -e MAILMAN_EMAIL=test@test.com -e MAILMAN_PASS=pass -d \ -p 20:20 -p 21:21 -p 30000:30000 -p 30001:30001 -p 30002:30002 \ -p 30003:30003 -p 30004:30004 -p 30005:30005 -p 30006:30006 \ -p 30007:30007 -p 30008:30008 -p 30009:30009 -p 80:80 -p 443:443 \ -p 8080:8080 -p 53:53 -p 2222:22 jerob/docker-ispconfig /start.sh 

然后进入容器和tar,并将现有的文件夹复制到主机:

 $ sudo docker exec -ti ispconfig bash root@398592d4afe9:/# DEFAULT_ROUTE=$(ip route show default \ | awk '/default/ {print $3}') root@398592d4afe9:/var/www# tar -cvzf /tmp/www.tar.gz /var/www/ tar: Removing leading `/' from member names /var/www/ /var/www/php-fcgi-scripts/ /var/www/php-fcgi-scripts/ispconfig/ /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter /var/www/php-fcgi-scripts/apps/ /var/www/php-fcgi-scripts/apps/.php-fcgi-starter /var/www/ispconfig /var/www/html/ /var/www/html/index.html /var/www/apps/ /var/www/webalizer/ root@398592d4afe9:/# scp -rv /tmp/www.tar.gz nwani@${DEFAULT_ROUTE}: The authenticity of host '172.17.42.1 (172.17.42.1)' can't be established. ECDSA key fingerprint is 7d:77:b7:54:3a:a5:00:37:94:55:4b:68:8d:2c:89:26. Are you sure you want to continue connecting (yes/no)? yes nwani@172.17.42.1's password: 

然后退出容器并删除它。

 root@398592d4afe9:/# exit $ sudo docker rm -f ispconfig 

然后提取复制的tar球:

 $ sudo tar -xf /tmp/www.tar.gz -C /home/nwani/ $ sudo ls /home/nwani/var/www/ -l total 16 drwxr-xr-x 2 5002 5003 4096 Sep 3 2015 apps drwxr-xr-x 2 root root 4096 Sep 3 2015 html lrwxrwxrwx 1 root root 34 Sep 3 2015 ispconfig -> /usr/local/ispconfig/interface/web drwxr-xr-x 4 root root 4096 Sep 3 2015 php-fcgi-scripts drwxr-xr-x 2 root root 4096 Sep 3 2015 webalizer 

现在再次运行容器,但是这次挂载数据目录:

 sudo docker run -name ispconfig -v /home/nwani/var/www/:/var/www \ -e MAILMAN_EMAIL_HOST=test.com -e MAILMAN_EMAIL=test@test.com \ -e MAILMAN_PASS=pass -d -p 20:20 -p 21:21 -p 30000:30000 \ -p 30001:30001 -p 30002:30002 -p 30003:30003 -p 30004:30004 \ -p 30005:30005 -p 30006:30006 -p 30007:30007 -p 30008:30008 \ -p 30009:30009 -p 80:80 -p 443:443 -p 8080:8080 -p 53:53 \ -p 2222:22 jerob/docker-ispconfig /start.sh