首頁  >  問答  >  主體

docker run -t -i /bin/bash 如何保存修改?

想通过 docker 的 /bin/bash 修改容器内容,commit 新的 image 。

未成功的操作流程如下:

docker run -t -i docker-wordpress-nginx /bin/bash

进入容器bash

vi /etc/nginx/sites-available/default

修改了 nginx 的 conf 文件

exit

退出容器,然后运行

docker ps

什么都没有。运行

docker images

还是原来那些 images。

请问如何保存在 docker 中 bash 所做的修改,如何 commit?

PS1:如何 commit 给新的 image 自动打上 tag latest,并且之前的 latest 作废(替代)?

PS2:假如通过修改和 commit 得到三个版本 tag v1, v2, v3,能否删除 v1, v2 保留 v3?即单独的 images 之间有关联(堆叠)关系吗?

黄舟黄舟2761 天前836

全部回覆(3)我來回復

  • 迷茫

    迷茫2017-04-21 11:21:10

    docker commit --help
    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    

    A1. commit如果不加tag就預設是latest,如果在latest image上修改後再commit不加tag就會替代原來的latest, 一般都是commit之前先tag一下原來的latest image

    A2. v1,v2,v3這些都是你自己添加的tag, docker rmi username/repo:v1就可以刪除v1這個tag,不影響其他tag

    同時如果v1,v2,v3三個tag是打在同一個image id上,刪除了v1 tag也不會刪除對應的image

    回覆
    0
  • 黄舟

    黄舟2017-04-21 11:21:10

    docker ps -l
    

    查看『剛』運行過的容器!

    接著就得到了剛剛執行過的指令的 container_id

    docker commit 22bb071e070b docker-wordpress-nginx
    

    預設的 tag 就是 latest


    以上答案有誤,會遇到問題!仍在嘗試中,求大神解答,求 Best Practices!

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-21 11:21:10

    組合鍵:Ctrl+P+Q

    回車即可跳出docker容器且不關閉,暫時看到是這樣的解決方案。

    http://blog.csdn.net/yangzhen...

    回覆
    0
  • 取消回覆