docker—数据卷
启动一个数据容器并挂载本地目录
docker run -itd --name=volume /opt/volume:/tmp/volume --privileged docker.io/nginx-tomcat /bin/bash
[root@a9d5e18d5b2f /]# ll /tmp/ total 4 -rwx------ 1 root root 836 Mar 2 01:07 ks-script-IAlIsB drwxr-xr-x 2 root root 20 Mar 23 02:55 volume
挂载上面volume 容器里的数据卷
docker run -it --name=volume1 --volumes-from volume --privileged=true docker.io/nginx-tomcat /bin/bash --volumes-from
挂载 volume1 到 新容器里 (把已经挂载的数据卷,再挂载到新容器里)
docker run -it --name=volume2 --volumes-from volume1 --privileged=true nginx.io/nginx-tomcat /bin/bash
利用数据卷容器备份、恢复
(1)备份 docker run --name=backup --volumes-from volume -v $(pwd):/backup --privileged=true tt/centos-test:test tar cvf /backup/backup.tar /tmp/volume
启动一个名字为backup的容器,从volume加载数据卷,并把当前目录挂载为容器的数据卷,对应到容器的/backup目录,然后使用tar命令把容器中的目录/tmp/volume压缩为/backup/backup.tar文件,也就是压缩到了主机的当前目录。
(2)恢复 docker run -dit -v /root/recovery:/tmp/volume --name=recovery --privileged=true tt/centos-test:test /bin/bash
启动一个数据卷容器recovery,并把主机的/root/recovery目录挂载为容器的/tmp/volume目录。 docker run --volumes-from recovery -v $(pwd):/backup --privileged=true tt/centos-test:test tar xvf /backup/backup.tar
启动一个容器并挂载上述的recovery容器的数据卷,并把主机的当前目录(与之前压缩的是同一个目录,因为压缩包在这个目录中)挂载到容器中,然后利用tar命令解压压缩包,因为一进入容器是在/根目录,所以解压的文件会放在/tmp/volume中,也就对应与主机的/root/recovery目录,所以查看主机的/root/recovery可查看到文件,查看容器的/tmp/volume目录也可查看到文件。
容器互联
先启动tomcat
docker run -itd --privileged --name=tomcat docker.io/tomcat8 /usr/sbin/init tomcat默认8080所以这里没有指定外网端口 docker exec -it tomcat bash systemctl start tomcat
启动nginx时连接tomcat
docker run -itd -p 80:80 --privileged --name nginx-hulian --link tomcat:tomcat docker/nginx /usr/sbin/init 启动 docker exec -it nginx-hulian bash 进入容器 vi /etc/nginx/conf.d/default.conf 修改转发 location / { root /usr/share/nginx/html; index index.html index.htm; proxy_pass http://tomcat:8080/; } systemctl start nginx.service
进入tomcat容器添加index.html
[root@f474c8bd0bee ROOT]# pwd /usr/share/tomcat/webapps/ROOT [root@f474c8bd0bee ROOT]# cat index.html 9999999999 [root@f474c8bd0bee ROOT]#
容器连接访问成功