Docker目录挂载

Docker storage

在这里插入图片描述

docker储存文件主要有三种方式:volume、bind mount、tmpfs mount

volume是在宿主机docker目录下创建的一个类似于磁盘的虚拟卷,用户可以使用docker命令来管理volume;volume生命周期与容器的生命周期分离,即使容器被删除,数据依然保留,可以使用 Volume。

bind mount直接与宿主机的文件系统关联,因此数据共享更加直接、实时;方便进行开发和调试,容器中的文件也更易于与宿主机同步;但是Bind Mount 的权限与宿主机文件系统的权限直接相关,可能会导致权限管理上更加复杂。

tmpfs mount直接在容器内存中开辟一个虚拟目录空间,因此随着容器的消失,数据也会消失,一般很少使用。

通常情况下,开发环境和测试环境更适合使用 Bind Mount,而生产环境更适合使用 Volume 进行数据管理。

Volume

创建卷

docker volume create my-vol

列出卷

docker volume ls

检查卷

docker volume inspect my-vol

删除卷

docker volume rm my-vol

使用volume启动容器

# use --mount
docker run -d \
  --name devtest \
  --mount source=myvol2,target=/app \
  nginx:latest
# use -v
docker run -d \
  --name devtest \
  -v myvol2:/app \
  -it nginx:latest bash

Read-only

# use --mount
docker run -d \
  --name=nginxtest \
  --mount source=nginx-vol,destination=/usr/share/nginx/html,readonly \
  nginx:latest
# use -v
docker run -d \
  --name=nginxtest \
  -v nginx-vol:/usr/share/nginx/html:ro \
  -it nginx:latest bash

Bind Mount

使用bind mount启动容器

# use --mount
docker run -d \
  -it \
  --name devtest \
  --mount type=bind,source="$(pwd)",target=/app \
  -it nginx:latest bash
# use -v
docker run -d \
  -it \
  --name devtest \
  -v "$(pwd)":/app \
  -it nginx:latest bash
# $(pwd)是当前文件夹  

Read-only

# use --mount
docker run -d \
  -it \
  --name devtest \
  --mount type=bind,source="$(pwd)",target=/app,readonly \
  -it nginx:latest bash
# use -v
docker run -d \
  -it \
  --name devtest \
  -v "$(pwd)":/app:ro \
  -it nginx:latest bash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值