Docker学习(四)Docker容器的数据卷和数据卷挂载

一、数据卷

1、容器存在的问题:

2、数据卷的作用:

将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全。

3、数据卷的定义:

4、数据卷操作的基本语法如下:

1、新增和查询数据卷

#创建一个volume
docker volume create 数据卷名称

#列出所有的volume
docker volume ls

#显示一个或多个volume的信息
docker volume inspect 数据卷名称

效果如下:html 文件夹的名称以及路径

2、删除数据卷,命令如下:

#删除一个或多个指定的volume
docker volume rm 数据卷名称

#删除未使用的volume
docker volume prune 数据卷名称

二、数据卷的挂载

命令如下:

docker run \
  --name mn \
  -v html:/root/html \
  -p 8080:80
  nginx \

docker run :就是创建并运行容器

-- name mn :给容器起个名字叫mn

-v html:/root/htm :把 html 数据卷挂载到 【容器内的/root/html 】 这个目录中,-v命令可以有多个,因为有时需要挂载多个数据卷

-p 8080:80 :把宿主机的8080端口映射到容器内的80端口

nginx :镜像名称

案例:创建一个nginx容器,修改容器内的html目录内的index.html内容

1、命令:

docker run \
--name myNginx \
-d \
-p 8080:80 \
-v html:/usr/share/nginx/html \
nginx:latest

 2、查询是否挂载成功

# 查看html数据卷的位置
docker volume inspect html

# 进入该目录
cd /var/lib/docker/volumes/html/_data

# 修改文件
vi index.html

注意:如果容器运行时volume不存在,会自动被创建出来。

三、宿主机目录挂载到容器中

案例:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器

提示:目录挂载与数据卷挂载的语法是类似的:

-v [宿主机目录]:[容器内目录]

-v [宿主机文件]:[容器内文件]   这种会把宿主机的文件直接覆盖到容器内部的文件。

命令如下:

docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysql/data:/var/lib/mysql \
-p 3306:3306 \
mysql:5.7.25

-e :设置密码

-v :挂载数据卷,但这里是把宿主机的目录挂载到容器中

注意:数据卷挂载和宿主机目录挂载的区别:

1、数据卷挂载的目录都是固定的,数据卷目录是在:/var /lib/docker/volumes/。

2、宿主机目录挂载的的目录,可以在宿主机自定义,随便放在宿主机什么位置都可以。

3、宿主机还可以进行文件挂载,可以对容器的文件进行合并执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值