1

我創建了名爲「task1」的docker容器。使用docker命令創建它並提交更改後無法看到文件

我執行一個shell命令,它創建一個包含單詞「hello」的文件foo.txt。

我提交泊塢窗容器「TASK1」

我進入以交互方式泊塢窗容器「獨立寫作」與-IT命令

,但我沒有看到一個文件「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 
    [email protected]:/# ls 
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var 
    [email protected]:/# 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 
    [email protected]:/# ls 
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var 
    [email protected]:/# exit 
    exit 

回答

3

docker commit <container>不以任何方式改變容器的圖像;它只是創建一個新的圖像與原始圖像分開。如果您想要更新test1圖片,則需要爲新圖片指定一個名稱:docker commit <container> test1

+0

它的工作原理。我也可以傳遞任何新的圖像名稱而不是test1,並使用已執行的更改創建圖像的新副本。謝謝。 – Zack

相關問題