使用docker命令创建文件并提交更改后,无法查看该文件

使用docker命令创建文件并提交更改后,无法查看该文件,docker,virtual-machine,dockerfile,docker-compose,docker-registry,Docker,Virtual Machine,Dockerfile,Docker Compose,Docker Registry,我创建了名为“task1”的docker容器 我执行一个shell命令,创建一个包含单词“hello”的foo.txt文件 我提交docker容器“task1” 我使用-it命令以交互模式进入docker容器“task1” 但是我没有看到文件“foo.txt”。我期待它,因为我已经提交了容器。 然而,当我只是传递“ls”命令并在同一个容器“task1”中执行它时,它会显示文件“foo.txt” 这里有什么问题?下面是我尝试上述活动的控制台详细信息。谢谢你的帮助。谢谢 ~/G/S/d/d/H/t

我创建了名为“task1”的docker容器

我执行一个shell命令,创建一个包含单词“hello”的foo.txt文件

我提交docker容器“task1”

我使用-it命令以交互模式进入docker容器“task1”

但是我没有看到文件“foo.txt”。我期待它,因为我已经提交了容器。 然而,当我只是传递“ls”命令并在同一个容器“task1”中执行它时,它会显示文件“foo.txt”

这里有什么问题?下面是我尝试上述活动的控制台详细信息。谢谢你的帮助。谢谢

 ~/G/S/d/d/H/test_io   master ±  docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
35784a56ffa3        task1               "/bin/bash"              5 seconds ago       Up 4 seconds                                 task2
eb03c7b89e36        task1               "/bin/bash"              6 minutes ago       Up 6 minutes                                 clever_bell
352c6f8f1ff2        registry:2          "/bin/registry /etc/d"   10 days ago         Up About an hour    0.0.0.0:5000->5000/tcp   registry

~/G/S/d/d/H/test_io   master ±  docker exec -it eb03c7b89e36 script /dev/null -c "echo 'Hello' > foo.txt"
    Script started, file is /dev/null
    Script done, file is /dev/null




  ~/G/S/d/d/H/test_io   master ±  docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    35784a56ffa3        task1               "/bin/bash"              2 minutes ago       Up 2 minutes                                 task2
    eb03c7b89e36        task1               "/bin/bash"              8 minutes ago       Up 8 minutes                                 clever_bell
    352c6f8f1ff2        registry:2          "/bin/registry /etc/d"   10 days ago         Up About an hour    0.0.0.0:5000->5000/tcp   registry



   ~/G/S/d/d/H/test_io   master ±  docker commit eb03c7b89e36
    6d8666dc72caa36f436c46fe65e5beb6a1421ea27867153658303e430a33f126



   ~/G/S/d/d/H/test_io   master ±  docker run -it task1
    root@aad8db09c5fe:/# ls
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    root@aad8db09c5fe:/# exit
    exit



  ~/G/S/d/d/H/test_io   master ±  docker exec -it eb03c7b89e36 ls
    bin   dev  foo.txt  lib    media  opt   root  sbin  sys  usr
    boot  etc  home     lib64  mnt    proc  run   srv   tmp  var

 ~/G/S/d/d/H/test_io   master ±  docker start clever_bell
    clever_bell

 ~/G/S/d/d/H/test_io   master ±  docker run -it task1
    root@4bfba10c7c49:/# ls
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    root@4bfba10c7c49:/# exit
    exit

不以任何方式改变容器的形象;它只是创建一个与原始图像分离的新图像。如果希望更新
test1
映像,则需要为新映像指定一个名称:
docker commit test1

它可以工作。我还可以传递任何新的映像名,而不是test1,它将创建一个包含已提交更改的映像的新副本。谢谢