久综合色-久综合网-玖草影视-玖草资源在线-亚洲黄色片子-亚洲黄色片在线观看

Hello! 歡迎來到小浪云!


不得不知的基本的Docker容器管理命令


avatar
小浪云 2024-10-31 157

不得不知的基本的Docker容器管理命令

利用這 8 個命令可以學習 docker 容器的基本管理方式。這是一個為 Docker 初學者準備的,帶有示范命令輸出的指南。
在這篇文章中,我們將帶你學習 8 個基本的 Docker 容器命令,它們操控著 Docker 容器的基本活動,例如 運行、 列舉、 停止、 查看歷史紀錄、 刪除 等等。如果你對 Docker 的概念很陌生,推薦你看看我們的 介紹指南,來了解 Docker 的基本內容以及 如何 在 Linux 上安裝 Docker。 現在讓我們趕快進入要了解的命令:

如何運行 Docker 容器?

眾所周知,Docker 容器只是一個運行于宿主操作系統上的應用進程,所以你需要一個鏡像來運行它。Docker 鏡像以進程的方式運行時就叫做 Docker 容器。你可以加載本地 Docker 鏡像,也可以從 Docker Hub 上下載。Docker Hub 是一個提供公有和私有鏡像來進行拉取操作的集中倉庫。官方的 Docker Hub 位于 hub.docker.com。 當你指示 Docker 引擎運行容器時,它會首先搜索本地鏡像,如果沒有找到,它會從 Docker Hub 上拉取相應的鏡像。

讓我們運行一個 apache web 服務器的 Docker 鏡像,比如 httpd 進程。你需要運行 docker container run 命令。舊的命令為 docker run, 但后來 Docker 添加了子命令部分,所以新版本支持下列命令:

    root@kerneltalks # docker container run -d -p 80:80 httpd     Unable to find image 'httpd:latest' locally     latest: Pulling from library/httpd     3d77ce4481b1: Pull complete     73674f4d9403: Pull complete     d266646f40bd: Pull complete     ce7b0dda0c9f: Pull complete     01729050d692: Pull complete     014246127c67: Pull complete     7cd2e04cf570: Pull complete     Digest: sha256:f4610c3a1a7da35072870625733fd0384515f7e912c6223d4a48c6eb749a8617     Status: Downloaded newer image for httpd:latest     c46f2e9e4690f5c28ee7ad508559ceee0160ac3e2b1688a61561ce9f7d99d682 
登錄后復制

Docker 的 run 命令將鏡像名作為強制參數,另外還有很多可選參數。常用的參數有:

  • -d:從當前 shell 脫離容器
  • -p X:Y:綁定容器的端口 Y 到宿主機的端口 X
  • –name:命名你的容器。如果未指定,它將被賦予隨機生成的名字
  • -e:當啟動容器時傳遞環境編輯及其值

通過以上輸出你可以看到,我們將 httpd 作為鏡像名來運行容器。接著,本地鏡像沒有找到,Docker 引擎從 Docker Hub 拉取了它。注意,它下載了鏡像 httpd:latest, 其中 : 后面跟著版本號。如果你需要運行特定版本的容器,你可以在鏡像名后面注明版本名。如果不提供版本名,Docker 引擎會自動拉取最新的版本。輸出的最后一行顯示了你新運行的 httpd 容器的唯一 ID。

如何列出所有運行中的 Docker 容器?

現在,你的容器已經運行起來了,你可能想要確認這一點,或者你想要列出你的機器上運行的所有容器。你可以使用 docker container ls 命令。在舊的 Docker 版本中,對應的命令為 docker ps。

    root@kerneltalks # docker container ls     CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                NAMES     c46f2e9e4690        httpd               "httpd-foreground"   11 minutes ago      Up 11 minutes       0.0.0.0:80->80/tcp   cranky_cori
登錄后復制

列出的結果是按列顯示的。每一列的值分別為:

  • Container ID :一開始的幾個字符對應你的容器的唯一 ID
  • Image :你運行容器的鏡像名
  • Command :容器啟動后運行的命令
  • Created :創建時間
  • Status :容器當前狀態
  • Ports :與宿主端口相連接的端口信息
  • Names :容器名(如果你沒有命名你的容器,那么會隨機創建)
如何查看 Docker 容器的歷史紀錄?

在第一步我們使用了 -d 參數來將容器,在它一開始運行的時候,就從當前的 shell 中脫離出來。在這種情況下,我們不知道容器里面發生了什么。所以為了查看容器的歷史紀錄,Docker 提供了 logs 命令。它采用容器名稱或 ID 作為參數。

    root@kerneltalks # docker container logs cranky_cori     AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message     AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message     [Thu May 31 18:35:07.301158 2018] [mpm_event:notice] [pid 1:tid 139734285989760] AH00489: Apache/2.4.33 (Unix) configured -- resuming normal operations     [Thu May 31 18:35:07.305153 2018] [core:notice] [pid 1:tid 139734285989760] AH00094: Command line: 'httpd -D FOREGROUND'
登錄后復制

這里我使用了容器名稱作為參數。你可以看到在我們的 httpd 容器中與 Apache 相關的歷史紀錄。

如何確定 Docker 容器的進程?

容器是一個使用宿主資源來運行的進程。這樣,你可以在宿主系統的進程表中定位容器的進程。讓我們在宿主系統上確定容器進程。

Docker 使用著名的 top 命令作為子命令的名稱,來查看容器產生的進程。它采用容器的名稱或 ID 作為參數。在舊版本的 Docker 中,只可運行 docker top 命令。在新版本中,docker top 和 docker container top 命令都可以生效。

    root@kerneltalks # docker container top  cranky_cori     UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD     root                15702               15690               0                   18:35               ?                   00:00:00            httpd -DFOREGROUND     bin                 15729               15702               0                   18:35               ?                   00:00:00            httpd -DFOREGROUND     bin                 15730               15702               0                   18:35               ?                   00:00:00            httpd -DFOREGROUND     bin                 15731               15702               0                   18:35               ?                   00:00:00            httpd -DFOREGROUND           root@kerneltalks # ps -ef |grep -i 15702     root     15702 15690  0 18:35 ?        00:00:00 httpd -DFOREGROUND     bin      15729 15702  0 18:35 ?        00:00:00 httpd -DFOREGROUND     bin      15730 15702  0 18:35 ?        00:00:00 httpd -DFOREGROUND     bin      15731 15702  0 18:35 ?        00:00:00 httpd -DFOREGROUND     root     15993 15957  0 18:59 pts/0    00:00:00 grep --color=auto -i 15702
登錄后復制

在第一個輸出中,列出了容器產生的進程的列表。它包含了所有細節,包括用戶號、進程號,父進程號、開始時間、命令,等等。這里所有的進程號你都可以在宿主的進程表里搜索到。這就是我們在第二個命令里做得。這證明了容器確實是宿主系統中的進程。

如何停止 Docker 容器?

只需要 stop 命令!同樣,它采用容器名稱或 ID 作為參數。

     root@kerneltalks # docker container stop cranky_cori     cranky_cori
登錄后復制
如何列出停止的或不活動的 Docker 容器?

現在我們停止了我們的容器,這時如果我們使用 ls 命令,它將不會出現在列表中。

    root@kerneltalks # docker container ls     CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
登錄后復制

所以,在這種情況下,如果想要查看停止的或不活動的容器,你需要在 ls 命令里同時使用 -a 參數。

    root@kerneltalks # docker container ls -a     CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                     PORTS               NAMES     c46f2e9e4690        httpd               "httpd-foreground"   33 minutes ago      Exited (0) 2 minutes ago                       cranky_cori
登錄后復制

有了 -a 參數,現在我們可以查看已停止的容器。注意這些容器的狀態被標注為 已退出。既然容器只是一個進程,那么用“退出”比“停止”更合適!

如何(重新)啟動 Docker 容器?

現在,我們來啟動這個已停止的容器。這和運行一個容器有所區別。當你運行一個容器時,你將啟動一個全新的容器。當你啟動一個容器時,你將開始一個已經停止并保存了當時運行狀態的容器。它將以停止時的狀態重新開始運行。

    root@kerneltalks #  docker container start c46f2e9e4690     c46f2e9e4690           root@kerneltalks # docker container ls -a     CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                NAMES     c46f2e9e4690        httpd               "httpd-foreground"   35 minutes ago      Up 8 seconds        0.0.0.0:80->80/tcp   cranky_cori 
登錄后復制
如何移除 Docker 容器?

我們使用 rm 命令來移除容器。你不可以移除運行中的容器。移除之前需要先停止容器。你可以使用 -f 參數搭配 rm 命令來強制移除容器,但并不推薦這么做。

    root@kerneltalks # docker container rm cranky_cori     cranky_cori     root@kerneltalks # docker container ls -a     CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
登錄后復制

相關閱讀

主站蜘蛛池模板: 青草青99久久99九九99九九九 | 久久久久久免费播放一级毛片 | 三上悠亚免费一区二区在线 | 国产黄色片在线观看 | 一级女性全黄久久生活片免费 | 久久久这里只有精品免费 | 一级毛片在线免费播放 | 国产黄色一级毛片 | 亚洲精品久久久久综合中文字幕 | 国产在线观看高清精品 | 久久久久国产精品免费网站 | 91香蕉国产在线观看免费永久 | 欧美一级毛片美99毛片 | 国产页| 一区二区三区国产精品 | 日本三级香港三级人妇gg在线 | 国产成人亚洲综合91精品555 | 久久大胆视频 | 97久久精品国产精品青草 | 中文字幕亚洲综合久久男男 | 亚洲午夜久久久久影院 | 宅男66lu国产乱在线观看 | 成年人在线免费观看网站 | 老司机毛片 | 亚洲第一页在线 | 亚洲涩涩精品专区 | 日本三级香港三级乳网址 | 91香蕉国产线在线观看免费 | 老师张开腿让我爽了一夜视频 | 成人18免费观看的软件 | 中文字幕亚洲精品第一区 | 一级片在线观看视频 | 欧美激情亚洲色图 | 成人免费视频网 | 成人一级黄色片 | 黄视频免费在线 | 成 人 在 线 免费 8888 www | 欧美黑人性xxx猛交 欧美很黄视频在线观看 | 国产伦精一区二区三区 | 97在线播放 | 欧美xxxx色视频在线观看 |