docker容器 - 進入容器、刪除容器


實驗環境

CentOS 7.5

容器

容器是鏡像的運行實例。不同的是,鏡像是靜態的只讀文件,而容器帶有運行時需要的可寫文件層;同時,容器中的應用進程處於運行狀態。

進入容器

可使用以下命令進入容器:

attach命令

docker container attach [OPTIONS] CONTAINER

[root@kvm ~]# docker container attach --help
Usage:  docker container attach [OPTIONS] CONTAINER
Attach to a running container
Options:
      --detach-keys string   指定退出attach模式的快捷鍵
      --help                 幫助信息
      --no-stdin             是否關閉標准輸入,默認是保持打開;--no-stdin=true|false
      --sig-proxy            是否代理收到的系統信號給應用進程,默認為true;--sig-proxy=true|false

注意:

  • attach命令只能進入處於運行狀態的容器中;
  • attach命令直接進入容器並啟動命令的終端,不會啟動新的進程;
  • attach命令進入容器后,如果直接從這個stdin中exit(ctrl+d),會導致容器的停止;不建議使用此命令操作容器。

exec命令

docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]

[root@kvm ~]# docker container exec --help
Usage:  docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
Run a command in a running container
Options:
  -d, --detach               在容器中后台執行命令;
      --detach-keys string   指定將容器切回后台的按鍵;
  -e, --env list             指定環境變量列表;
      --help                 幫助信息
  -i, --interactive          打開標准輸入接受用戶輸入命令,默認值為false;--interactive=true|false;
      --privileged           是否給執行命令以高權限,默認值為false;--privileged=true|false;
  -t, --tty                  分配偽終端,默認值為false;--tty=true|false;
  -u, --user string          執行命令的用戶名或ID;--user=""。

注意:

  • 同attach命令,exec命令也只能進入處於運行狀態的容器中;
  • 不同attach命令,exec命令是在容器中打開新的終端,並且可以啟動新的進程;
  • exec命令進入容器后,如果直接從這個stdin中exit(ctrl+d),不會導致容器的停止;
  • 使用exec命令的同時使用 -it 選項時,會打開一個跟我們平時使用的TTY一樣的終端。

刪除容器

docker [container] rm [OPTIONS] CONTAINER [CONTAINER...]

[root@kvm ~]# docker container rm --help
Usage:  docker container rm [OPTIONS] CONTAINER [CONTAINER...]
Remove one or more containers
Options:
  -f, --force     是夠強制終止並刪除一個運行中的容器;
      --help      幫助信息;
  -l, --link      刪除容器的鏈接,但是保留容器;
  -v, --volumes   刪除容器掛載的數據卷。

默認情況下,docker rm命令只能刪除已經處於停止或退出狀態的容器,並不能刪除還處於運行狀態的容器,除非使用-f參數強制刪除。

刪除所有處於同一狀態的容器

可以使用docker ps -a狀態定位容器並對其進行過濾:創建,重新啟動,運行,暫停或退出。要查看已退出容器的列表,可使用-f參數根據狀態進行過濾。當確認要刪除這些容器時,使用-q參數將容器ID傳遞給docker rm命令;eg:

  • 列出所有處於停止狀態的容器列表
    docker ps -a -f status=exited
  • 刪除所有處於停止狀態的容器
    docker rm $(docker ps -a -f status=exited -q)
    批量刪除其他狀態的容器方法同理。

刪除所有容器

  • 刪除所有容器首先需要停止所有容器
    docker stop $(docker ps -a -q)
  • 刪除所有容器
    docker rm $(docker ps -a -q)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM