使用docker命令创建文件并提交更改后,无法查看该文件
我创建了名为“task1”的docker容器 我执行一个shell命令,创建一个包含单词“hello”的foo.txt文件 我提交docker容器“task1” 我使用-it命令以交互模式进入docker容器“task1” 但是我没有看到文件“foo.txt”。我期待它,因为我已经提交了容器。 然而,当我只是传递“ls”命令并在同一个容器“task1”中执行它时,它会显示文件“foo.txt” 这里有什么问题?下面是我尝试上述活动的控制台详细信息。谢谢你的帮助。谢谢使用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
~/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,它将创建一个包含已提交更改的映像的新副本。谢谢