绑定挂载

绑定挂载

绑定挂载

启动容器并执行绑定挂载

将HOME目录下的target文件夹挂载到容器的/app文件夹

# --mount

$ docker run -d \

-it \

--name devtest \

--mount type=bind,source="$(pwd)"/target,target=/app \

nginx:latest

# -v

$ docker run -d \

-it \

--name devtest \

-v "$(pwd)"/target:/app \

nginx:latest

错误

docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /home/zj/target.

注意:主机目录必须已存在

查询

使用docker inspect查询挂载结果

...

"Mounts": [

{

"Type": "bind",

"Source": "/home/zj/target",

"Destination": "/app",

"Mode": "",

"RW": true,

"Propagation": "rprivate"

}

],

...

挂载到容器非空目录

如果将安装程序绑定到容器上的非空目录,则目录的现有内容被绑定挂载所遮蔽

极端示例如下,将主机/tmp目录挂载到容器/usr目录,会导致容器无法工作

$ docker run -d \

> -it \

> --name broken-container \

> --mount type=bind,source=/tmp,target=/usr \

> nginx:latest

ac23f23344be2ead4a9e86704e987b5f3bfd077d079637f3abfed5e1f0d0291d

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"nginx\": executable file not found in $PATH": unknown.

只读绑定挂载

如果容器只需读取主机内容,可以设置绑定挂载为只读,需要添加选项readonly

# --mount

$ docker run -d \

-it \

--name devtest \

--mount type=bind,source="$(pwd)"/target,target=/app,readonly \

nginx:latest

# -v

$ docker run -d \

-it \

--name devtest \

-v "$(pwd)"/target:/app:ro \

nginx:latest

通过docker inspect可以查询是否只读

"Mounts": [

{

"Type": "bind",

"Source": "/home/zj/target",

"Destination": "/app",

"Mode": "ro",

"RW": false, // 在这里

"Propagation": "rprivate"

}

],

相关阅读

Use bind mounts

你可能也喜欢

CentOS 7轻松上手:Kangle安装指南与常见问题解答
beat365中文官网

CentOS 7轻松上手:Kangle安装指南与常见问题解答

📅 08-17 👀 3931
快手小游戏大全
beat365中文官网

快手小游戏大全

📅 09-11 👀 5990
thinkphp5用了哪些设计模式
36500365体育在线投注

thinkphp5用了哪些设计模式

📅 09-15 👀 7490
直击|武大樱花开放,实行网络预约不收任何费用
王梁[中央電視台國際部主持人]
36500365体育在线投注

王梁[中央電視台國際部主持人]

📅 09-26 👀 9300
数位板安装后用什么软件画画
365bet官网地址

数位板安装后用什么软件画画

📅 12-27 👀 9792