Docker: 小白之路八(Docker使用篇之路径映射(挂载本地目录))

Docker的小白之路八(Docker使用篇之路径映射(挂载本地目录))

一、直接挂载本地目录到容器

在使用docker过程中,我们经常需要利用docker 容器的环境,但是又不想将代码传到容器中,这时我们就需要docker把宿主机上的目录挂载到容器中

root@felaim-pc:/home/felaim# docker run -it -v  /home/felaim/Documents/docker_tutorial:/usr/Downloads --name felaim_test  ubuntu:16.04 /bin/bash

参数说明:

  • -t: 在新容器内指定一个伪终端或终端
  • -i: 允许你对容器内的标准输入(STDIN)进行交互
  • -v: 是将宿主机目录,必须为绝对路径,冒号后为容器内挂载的路径
  • –name: 这里注意是双短线,来命名容器,不然每次docker会对容器进行自动命名,容器多了就分不清楚到底不同容器之间的关系了。
    在这里插入图片描述我们进入容器中,可以看到宿主机的目录已经映射到容器中了。
    在这里插入图片描述我们可以看到容器中Dockerfile的内容如上。

如果我们在本地端对文件进行修改呢?添加了一行test_modify的用户
在这里插入图片描述
再次在容器中打开Dockerfile文件,可以看到文件也是实时修改的!
在这里插入图片描述
这样你就可以在本地愉快的调试代码,减少了代码传输的麻烦和本地环境的配置,怎么现在才知道这个好东西/(ㄒoㄒ)/~~

咱们再使用一下docker ps,验证一下容器的名字,是felaim_test,验证无误。

在这里插入图片描述我们也可以使用 -p 标识来指定容器端口绑定到主机端口。

两种方式的区别是:

  • -P :是容器内部端口随机映射到主机的高端口。
  • -p : 是容器内部端口绑定到指定的主机端口。

这个在端口映射那章已经有具体示例了,就不讨论对应参数设定了。

二、使用数据卷

1. 创建数据卷容器

数据卷:“其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的”。感觉像是由一个容器定义的一个数据挂载信息。其他的容器启动可以直接挂载数据卷容器中定义的挂载信息。

root@felaim-pc:/home/felaim# docker run -v /home/felaim/Documents/docker_tutorial:/usr/Downloads --name dataVol ubuntu:16.04 /bin/bash

可以看到我们的dataVol已经创建成功
在这里插入图片描述

2. 创建使用数据卷的新容器

root@felaim-pc:/home/felaim# docker run -it --volumes-from dataVol --name test_dataVol  ubuntu:16.04 /bin/bash

参数说明:

  • –volumes-from: 这个也是双短线,这个参数用来指定使用哪个数据卷来挂载数据
    在这里插入图片描述
    在本地进行修改之后,再次查看容器中对应文件,发现容器中的文件内容也对应修改了,也就是咱们使用的数据卷也成功了。
    在这里插入图片描述

参考地址:

  1. https://blog.csdn.net/huludan/article/details/52641090?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
  2. https://www.runoob.com/docker/docker-container-connection.html
发布了349 篇原创文章 · 获赞 237 · 访问量 65万+

猜你喜欢

转载自blog.csdn.net/Felaim/article/details/105240539