Docker数据卷

发布于:2023-01-04 ⋅ 阅读:(1722) ⋅ 点赞:(2)

Docker数据卷的作用

Docker将应用和环境打包形成一个镜像,通过镜像生成容器并运行。因为数据都存储在容器中,如果不通过docker commit生成新的镜像使数据作为镜像的一部分保存下来,那么当容器删除后,数据就会丢失。

卷技术就是可以将容器中产生的数据,同步到本地。将我们容器内的目录挂载到宿主机上。

使用数据卷

方式一:直接使用命令挂载

-v

例:

        docker run -it -v "主机目录":"容器内目录" -p "主机端口":"容器内端口"

        docker run -it -v /home/ceshi:/home centos /bin/bash

方式二:Dockerfile中的VOLUME命令 

FROM centos

VOLUME ["volume01","volume02"]                #创建两个匿名挂载

CMD /bin/bash

方式三:数据卷容器

--volumes-from

例:

docker run -d -p 3306: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

doceker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02

--volumes-from mysql01 mysql:5.7

#以上示例可以实现两个mysql数据同步

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

挂载类型

具名挂载

-v "卷名":"容器内路径"

例子:

        docker run -d -P name nginx -v juming-nginx:/etc/nginx nginx

匿名挂载

-v "容器内路径"

例子:

        docker run -d -P --name nginx -v /etc/nginx nginx

指定路径挂载

-v "宿主机路径":"容器内路径"

例子:

        docker run -d -P --name nginx -v /home/nginx:/etc/nginx/conf.d nginx

拓展 

ro                #只读

rw                #可读可写

例子:

docker run -d -P --name nginx -v juming:/etc/nginx:ro nginx        #ro说明这个路径只能通过宿主机操作,容器内部无法操作。

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

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到