gpt4 book ai didi

docker - Docker卷初始化-将数据从镜像复制到容器

转载 作者:行者123 更新时间:2023-12-02 18:33:00 25 4
gpt4 key购买 nike

https://docs.docker.com/engine/userguide/dockervolumes/说:

"Volumes are initialized when a container is created. If the container’s base image contains data at the specified mount point, that existing data is copied into the new volume upon volume initialization."



但是,这并不是我正在观察的。这是我的情况:
  • 我创建一个包含/ opt / data数据的容器
  • 我提交这个容器并用它创建一个图像
  • 我使用刚刚准备的图像创建另一个容器,并创建一个将/ opt / data指向本地目录的卷。

  • 根据文档,我希望图像/ opt / data下的文件将被复制到本地创建的卷中。没发生
    <local>:~$ docker run --name test -it ubuntu bash
    root@76f42fce6ab7:/# mkdir /opt/data
    root@76f42fce6ab7:/# echo "foo" > /opt/data/my-data
    $ docker commit test test-with-data

    <local>:~$ docker run -it -v /tmp/test-volume:/opt/data test-with-data bash
    root@731b483527ad:/# ls /opt/data
    root@731b483527ad:/#
    root@731b483527ad:/# exit

    这里有我不懂的东西吗?

    最佳答案

    这是因为您指定了主机目录。如果您未指定主机目录,而是让Docker管理该卷,则它将按您期望的那样工作:

    $  docker run --name test -it debian bash
    root@ac99b805a689:/# mkdir /opt/data
    root@ac99b805a689:/# echo "foo" > /opt/data/my-data
    root@ac99b805a689:/# exit
    exit
    $ docker commit test test-with-data
    a35463157fbee6180ed91c458288cf528da93a23bf340f44c3d2a7ff355fa2b1
    $ docker run -it -v /opt/data/ test-with-data bash
    root@73f70c3b5518:/# ls /opt/data
    my-data
    root@73f70c3b5518:/# cat /opt/data/my-data
    foo

    关于docker - Docker卷初始化-将数据从镜像复制到容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33987439/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com