指定数据卷
我们可以在创建时,将系统的某一目录指定为容器某一目录的数据卷,其中
--volume 可以使用
-v 缩写:
docker run --volume /my/mac/dir:/container/dir $mirror-name此时,容器内部的 /container/dir 将与宿主机的 /my/mac/dir 形成映射。
当然,我们也可以将文件与文件映射起来。
docker run --volume /my/mac/file:/container/file $mirror-name在指定数据卷时,可以省略宿主主机目录,此时 Docker 会自动指定一个主机空间用以映射:
docker run --volume /container/dir $mirror-name此外,还可以选择只读方式,这样文件或目录的修改就只能在宿主机中进行了。只需添加 :ro 即可:
docker run --volume /my/mac/dir:/container/dir:ro $mirror-name我们可以通过
docker inspect $container-name,并在
Mounts 中看到数据卷的详细情况。查看数据卷
我们可以通过以下指令查看数据卷的情况:
docker volume ls当容器被删除时,主机上的数据卷并不会被删除,此时可以通过以下指令查看那些没有容器使用的数据卷,注意,这里只会显示那些由 Docker 自动指定的数据卷,即没有手动指定主机映射目录的数据卷:
docker volume ls -f dangling=true顺便,如果需要在删除容器时一并删除数据卷,可以使用以下指令:
docker rm -v $container-name数据卷的继承
有时我们可能需要在创建容器时,选择该容器的数据卷与之前的某容器相同,比如在面对多容器共享项目目录空间这一需求时。此时我们可以通过以下方式实现:
docker run --volumes-from $container-name $mirror-name数据卷的删除
可以使用如下方式删除数据卷,其中 $volume-id 可以通过 docker volume ls 查看:
docker volume rm $volume-id给已创建时的容器添加数据卷
容器一旦创建后,再添加数据卷映射会比较麻烦。
而且,这里并不建议这么做,建议的做法是将容器提交为镜像后,以此镜像再次创建容器。
Docker 端口
绑定端口
我们可以将容器的端口绑定到主机的某一端口上,已完成某些应用的需求,如将主机的 12345 端口绑定到容器的 80 端口上,这样我们对










