目录挂载

应用场景:启动容器,挂载宿主机的目录到容器目录,从而利用容器环境执行宿主机目录中代码。

可以通过-v参数指定要挂载宿主机的哪个目录,对应到容器内的目录,参考命令如下:

1
docker run -it -v /Users/bing/website/php-opencv:/work  morozovsk/php-opencv bash

注意事项:

  1. 容器目录不能是相对路径,否则会报错invalid mount path:.....
  2. 宿主机目录如果不存在,会自动生成
  3. 修改容器内文件拥有者,会根据容器内文件用户id,对应修改宿主机上目录的拥有者为同一个UID

如果宿主机为相对目录,比如:

1
docker run -it --rm -v aaa:/work  morozovsk/php-opencv bash

或者

1
docker run -it --rm -v aaa:/work  morozovsk/php-opencv bash

通过inspect查看,默认Mounts挂载位置

1
docker inspect CONTAINER ID

结果:

1
2
3
4
5
6
7
8
9
10
11
12
"Mounts": [
{
"Type": "volume",
"Name": "aaa",
"Source": "/var/lib/docker/volumes/aaa/_data",
"Destination": "/work",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
],

退出容器自动销毁

通过--rm参数完成