使用 docker 命令创建文件并提交更改后无法看到文件
Not able to see file after creating it using docker command and committing the changes
我创建了 docker 个名为 "task1" 的容器。
我执行 shell 命令创建一个文件 foo.txt 包含单词 "hello".
我提交 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
docker commit <container>
不会以任何方式改变容器的图像;它只是创建一个与原始图像分开的 new 图像。如果要更新 test1
图像,则需要为新图像指定名称:docker commit <container> test1
.
我创建了 docker 个名为 "task1" 的容器。
我执行 shell 命令创建一个文件 foo.txt 包含单词 "hello".
我提交 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
docker commit <container>
不会以任何方式改变容器的图像;它只是创建一个与原始图像分开的 new 图像。如果要更新 test1
图像,则需要为新图像指定名称:docker commit <container> test1
.