Docker数据卷

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值