docker数据卷管理

什么是数据卷

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以被挂载多个数据卷

数据卷的作用

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换

如何使用数据卷

使用绝对路径数据卷

docker run -id -v /宿主机的路径:/容器内的路径 镜像名

注意: 宿主机路径必须是绝对路径,宿主机目录会覆盖容器内目录内容

使用别名方式数据卷

docker run -id -v 别名:/容器内的路径 镜像名
# 例如
docker run -id --name mysql \
	-v mysql_data:/var/lib/mysql \
	-p 3306:3306 \
	mysql:8

注意:

  • mysql_data代表一个数据卷别名,别名可以是任意的。
  • mysql_data这个数据别名可以省略,省略的时候docker会自动生成一串随机序列来充当这个数据卷的别名。
  • docker首次用到这个数据卷时会自动创建,数据卷已经存在时会使用原来的。
  • 第一次使用别名时会将容器中原始数据保留下来,使用绝对路径方式不会保留容器中原始数据
# 查看所有数据卷
lxy@DESKTOP-74EDKD3:~$ docker volume ls
DRIVER    VOLUME NAME
local     456a70b64155be838c487db08ac50852060618d7cc6a16fb5275f80b6961d064
local     b91ad14c73d03b5cffd5053592f7a6c80d6294ef4b0146c55ee943008d1d0612
local     portainer_data

# 查看数据卷详细信息
lxy@DESKTOP-74EDKD3:~$ docker volume inspect portainer_data
[
    {
        "CreatedAt": "2022-06-08T07:31:45Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/portainer_data/_data",
        "Name": "portainer_data",
        "Options": null,
        "Scope": "local"
    }
]
#/var/lib/docker/volumes/portainer_data/_data  这个路径是数据卷在宿主机的路径

# 删除指定数据卷
docker volume rm 数据卷别名

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

# 手动创建一个数据卷
docker volume create 数据卷别名 # 在docker run中-v mysql_data:/var/lib/mysql会自动创建这个数据卷,手动创建还多操作了一步,麻烦
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值