julien 2019-12-30
[ /]# docker run --name mysql -p 3306:3306 -v /mysql:/var/lib/mysql -d hub.c.163.com/public/centos:6.7-tools b6045231a2963976472024969f2d5a16541fbc900c1532dfc892013824c23f0c [ /]# cd mysql/ [ mysql]# ls [ mysql]# docker run --name web1 -p 80:80 -v /web1:/var/www/html -d hub.c.163.com/public/centos:6.7-tools 20e93e34080badf563e3abacae7d61cddc5496c1ec8d21aa401bd4b4646d6308 [ mysql]# cd /web1/ [ web1]# ls
[ web1]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 20e93e34080b hub.c.163.com/public/centos:6.7-tools "/usr/bin/supervisord" 36 seconds ago Up 33 seconds 22/tcp, 0.0.0.0:80->80/tcp web1 b6045231a296 hub.c.163.com/public/centos:6.7-tools "/usr/bin/supervisord" 2 minutes ago Up 2 minutes 22/tcp, 0.0.0.0:3306->3306/tcp mysql
[ web1]# docker run --name web2 -p 81:80 -v /web1:/var/www/html -d hub.c.163.com/public/centos:6.7-tools 8ad966f1b220103068a740a823b895932e67160c83450c1811a4fe69adf5ee9f [ ~]# cd /web1/ [ web1]# echo "test docker volume" > index.html
进入第一个容器
[ web1]# docker exec -it web1 /bin/bash [ /]# yum -y install httpd [ /]# service httpd start [ /]# curl localhost test docker volume
进入第二个容器
[ web1]# docker exec -it web2 /bin/bash [ /]# yum -y install httpd [ /]# service httpd start [ /]# curl localhost test docker volume
对于多个容器来说我可以把他挂载到同一个目录下,实现他们的数据一至,如果这是一个web集群的话,本地磁盘足够大,就可以做到目录共享的作用。在小集群下可以这么做,但是如果web服务器很多的话不建议这么做,这样本地的磁盘io会成为一个瓶颈,可以把根下的web目录挂载成远程文件系统,容器挂载在这个远程文件系统上时操作的就是远程目录的权限,并且操作的是同一个远程文件共享。这样就可以实现数据的一至性,