Docker 容器卷

一、介绍

        如果数据都在容器中,容器已删除,数据都会丢失。容器之间可以有一个共享的技术。docker容器产生的数据,可以同步到本地。将容器内的目录,挂载到linux上面。

二、制作镜像

docker commit -m="提交信息" -a="作者"  容器id  目标镜像名:tag   #制作镜像文件,tag 版本号

三、使用数据卷

 1、使用命令挂载  -v  , 本地和容器可以互相影响

docker run -it -v 主机目录 :容器目录   #挂载
docker inspect                       #可以看到挂载信息

 2、运行mysql

-d 后台运行
-p 端口映射
-v 数据卷挂载 
-e 环境配置   
--name 容器名字


docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

 四、匿名挂载与具名挂载

 1、  匿名挂载

-v  挂载路径
docker run -d --nginx02  -v  /etc/nginx  nginx   # -v 时只写了容器内的地址,没有写容器外的地址

2、具名挂载

docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx nginx   # 通过  -v 卷名:容器内路径

docker volume inspect  juming-nginx     #通过具名挂载可以方便我们找到卷

3、区分时匿名还是具名挂载

-v 容器内路径                 # 匿名挂载

-v 具名:容器内路径            #具名挂载

-v /宿主机路径:容器内路径      #指定路径挂载

4、只读与可读可写

ro   # readonly   只读 只要看到ro,就说明这个路径只能由宿主机来操作,容器内部无法操作
rw   # readwrite  可读可写 

docker run
-d -P --name nginx04 -v juming-niginx-01:/etc/nginx:ro nginx #ro只读

docker run
-d -P --name nginx04 -v juming-niginx-01:/etc/nginx:rw nginx

 五、Dockerfile

    Dcokerfile 就是用构建docker镜像的构建文件

创建一个DockerFile文件,名字可以随机
#文件中的内容,指令(大写) 参数  
#test-iamges  Dockerfile名字
FROM centos 

VOLUME ["volume01","volume02"]   #挂载卷

CMD echo "----------end-----------"

CMD /bin/bash

生成镜像命令

docker build -f test-iamges -t dongsheng/centos .      # test-iamges Dockerfile文件名   dongsheng/centos  镜像名字

 容器间的数据共享

 --volumes-from     #共享命令
共享的是 volume01 volume02 挂载卷

先创建一个容器

docker run -it --name docker01 f0a85d1596be

创建第二个容器

docker run -it --name docker02 --volumes-from docker01 dongsheng/centos

容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用为止。

posted @ 2021-05-09 10:02  太素元清  阅读(74)  评论(0编辑  收藏  举报