docker文件的复制cp、挂载-v、共享VOLUME
复制:
从宿主机复制到容器:docker cp 宿主机本地路径 容器名字/ID:容器路径
docker cp /root/123.txt mycentos:/home/
从容器复制到宿主机:docker cp 容器名字/ID:容器路径 宿主机本地路径
docker cp mycentos:/home/456.txt /root
挂载:
宿主机文件夹挂载到容器里:docker run -itd -v 宿主机路径:容器路径 镜像ID
docker run -itd -v /root/xdclass/:/home centos:7
作用:
在容器损坏或者删除的情况下,完全可以重新生成一个容器挂载宿主机的mysql数据或日志文件路径从而达到数据不丢失的作用
不需要进入容器方便操作数据文件,不需要硬复制文件,挂载的方式就可以文件映射
应用:挂载mysql数据库,日志等。
共享:
dockerfile
FROM centos:7
VOLUME ["/usr/local"]
注意:在dockerfile里设置volume是无法修改宿主机的挂载路径的
查看容器挂载点:docker inspect 容器ID
volume无法更改宿主机路径,要想更改只能重新-v重新设置挂载点
使用volume容器共享创建nginx集群
使用--volumes-from 实现容器与容器之间volume共享
1.创建nginx1
docker run -itd -p 8080:80 -v /usr/local/nginx/html:/usr/local/nginx/html --name nginx1 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
2.创建nginx2
docker run -itd -p 8081:80 --volumes-from nginx1 --name nginx2 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
3.创建nginx3
docker run -itd -p 8082:80 --volumes-from nginx1 --name nginx3 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;
4.对/usr/local/nginx/html/index.html进行修改
5.打开浏览器进行访问测试
6.使用docker inspect 容器ID 可以查看详细的挂载信息
-v与volume区别:
相同点:都是挂载路径达到映射操作的目的
不同点:volume无法修改宿主机路径,是共享的意思,不需要重复的在集群容器-v挂载路径,只需基于需要共享的容器挂载即可。
评论区