zoukankan      html  css  js  c++  java
  • docker run启动时目录映射研究

    以docker hub的centos:8为研究对象

    1、宿主机和容器映射目录都不存在

    宿主机和容器映射目录都会自动创建,且在一边操作等同于在另一边操作。

    2、宿主机目录不存在,容器映射目录为空。容器中/usr/lib/games目录为空

    宿主机映射目录会自动创建,且在一边操作等同于在另一边操作。

    3、宿主机目录不存在,容器映射目录不为空。容器中/usr/lib/locale/C.utf8目录不为空

    宿主机映射目录会自动创建,容器映射目录中原来的文件都消失了,在一边操作等同于在另一边操作,且操作的是宿主机目录中的文件。

    4、宿主机映射目录为空,容器映射目录不存在

    容器映射目录会自动创建,且在一边操作等同于在另一边操作。

    5、宿主机和容器映射目录都为空。

    在一边操作等同于在另一边操作。

    6、宿主机映射目录为空,容器映射目录不为空

    容器映射目录中原来的文件都消失了。在一边操作等同于在另一边操作,且操作的是宿主机目录中的文件。

    7、宿主机映射目录不为空,容器映射目录不存在

    容器映射目录会自动创建,一进去该目录就能看见宿主机映射目录中的文件,且在一边操作等同于在另一边操作。

    8、宿主机映射目录不为空,容器映射目录为空

    一进容器映射目录就能看见宿主机映射目录中的文件,且在一边操作等同于在另一边操作。

    9、宿主机和容器映射目录都不为空。

    容器映射目录中原来的文件都消失了。在一边操作等同于在另一边操作,且操作的是宿主机目录中的文件。

    如果想在宿主机中访问容器中的文件,怎么办呢?

    1、如果想访问镜像自带的文件,按照上面实践,直接映射是不行的,直接映射的话,在宿主机和容器中访问的都是宿主机目录中的文件。自己想了个办法,在dockerfile的CMD命令中给想访问的文件加个软链接,docker run时把这个软链接所在目录映射出来就行了。

    https://www.cnblogs.com/koushr/p/14560872.html,dockerfile中CMD改成ln -sf /usr/local/bin/redis-cli /app/bin/redis-cli;redis-server /conf/redis.conf,即在容器启动后,给/usr/local/bin/redis-cli文件建个软链接。docker run命令修改为docker run -d --network n1 -p 6380:6380 -v /Users/shengruikou/Desktop/redis:/conf -v /Users/shengruikou/Desktop/redis/bin:/app/bin my_redis:6.2.0,把宿主机的/Users/shengruikou/Desktop/redis/bin目录和容器的/app/bin目录建立映射关系。在容器启动后,就可以在宿主机的/Users/shengruikou/Desktop/redis/bin目录中访问容器的redis-cli文件了。

    2、如果想访问容器启动后新生成的文件,则直接在docker run命令中把这个新文件的目录映射出来即可。

  • 相关阅读:
    poj1088滑雪
    百度关键词质量度如何提高?9个质量度影响因素
    百度竞价点击价格怎么算?计算公式准吗
    什么是百度竞价包年?竞价包年骗局揭露
    百度竞价如何调价?不是你想的那么简单
    为什么我的关键词搜不到,没有排名?
    为什么你的百度竞价有点击无咨询
    百度竞价中那些不为人知的规则与猫腻
    百度推广关键词点击价格为什么会高于出价?因为你开通了这8项功能
    百度推广点击价格怎样降低,怎样省钱?
  • 原文地址:https://www.cnblogs.com/koushr/p/14562533.html
Copyright © 2011-2022 走看看