docker常用命令 docker是干什么的( 二 )


  • source 当类型为 volume 时 , 指定卷名称 , 省略该字段会新建一个卷 。当类型为 bind 时 , 指定路径 。可以使用缩写 src 。
  • destination 挂载到容器中的路径 。可以使用缩写 dst 或 target 。
  • readonly 读写配置项 ,  true 或 false 。可以使用缩写 ro 。
  • 对于前面创建的卷 volume1 , 可使用如下命令来在容器中使用:
    [root@VM_0_17_centos ~]# docker container run -it --name hellodocker3 -v volume1:/volume1 --rm ubuntu bashUnable to find image 'ubuntu:latest' locallylatest: Pulling from library/ubuntu423ae2b273f4: Pull completede83a2304fa1: Pull completef9a83bce3af0: Pull completeb6b53be908de: Pull completeDigest: sha256:04d48df82c938587820d7b6006f5071dbbffceb7ca01d2814f81857c631d44dfStatus: Downloaded newer image for ubuntu:latestroot@a23cea8fe875:/#使用 --mount 的命令如下:
    [root@VM_0_17_centos ~]# docker run -it --name hellodocker4 --mount type=volume,src=https://www.msheying.com/baike/volume1,target=/volume1 --rm ubuntu bash
    可以看出 --mount 的可读性更好 。所以推荐大家使用 --mount
    上述操作 , 我们运行了两个容器 , 并分别挂载了一个卷 。对于这两个容器来说 , 由于挂载的是同一个卷 , 所以它们将共享该数据卷 。多个容器共享数据卷时 , 需要注意并发读写问题 。可以分别连接到两个容器中 , 操作数据来验证数据是同步的 。
    bind-mounts绑定挂载( bind-mounts)通过将主机上的目录挂载到容器中 , 使得容器可以操作和修改主机上的文件 。
    例如 , 我们将 /home/hellodocker 目录挂载到容器中的 /home/hellodocker 目录下 , 使用的命令如下:
    [root@VM_0_17_centos hellodocker]#  docker run -it -v /home/hellodocker:/home/hellodocker --name hellodocker4 --rm ubuntu bashroot@9d89e44a06a8:/# ^Croot@9d89e44a06a8:/# lsbin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  varroot@9d89e44a06a8:/# cd home/root@9d89e44a06a8:/home# lshellodockerroot@9d89e44a06a8:/home# cd hellodocker/root@9d89e44a06a8:/home/hellodocker# lstest1  test2root@9d89e44a06a8:/home/hellodocker#而如果使用 --mount , 相应的语句如下:
    [root@VM_0_17_centos hellodocker]# docker run -it --mount type=bind,src=https://www.msheying.com/home/hellodocker,target=/home/hellodocker --name hellodocker5 --rm ubuntu bash
    【docker常用命令 docker是干什么的】如果挂载时指定的容器目录已存在 , 则该目录将被覆盖(还存在只是被隐藏了 , 因为其位于更下层) 。并且如果主机上的目录不存在 , 会自动创建该目录 。
    上述两个操作针对的是目录 , 而对于挂载文件来说 , 可能会出现一些特殊情况 , 涉及到绑定挂载和使用卷的区别 。下面我们重现这一操作:
    首先在当前目录 , 即 /home/hellodocker 目录下 , 创建一个 test.txt 文件 。并向其中写入文本内容 "test1":
    echo "test1" > test.txt接着创建一个容器 hellodocker6 , 将 test.txt 文件挂载到容器中的 /test.txt 路径 , 并查看容器中 /test.txt 文件的内容:

    秒懂生活扩展阅读