首頁 運維 Docker 完全掌握Docker學習之容器的使用

完全掌握Docker學習之容器的使用

Jan 17, 2022 pm 06:46 PM
docker

這篇文章為大家帶來了關於docker中容器的使用,希望對大家有幫助。

完全掌握Docker學習之容器的使用

運行一個容器

#如果你想要找到一個現有的鏡像,可以在公開的Docker Hub 上搜索,這裡可以找到它的介紹和用法,就像在GitHub 上找一個開源專案一樣。

完全掌握Docker學習之容器的使用

如果你是第一次使用Docker Hub,可以先註冊一個帳號,在最上方的搜尋框輸入ubuntu ,找到的第一個結果就是官方的ubuntu 鏡像,點開可以看到上圖的頁面。

這個頁面上有映像的一些基本資訊和用法介紹,右邊的 docker pull ubuntu 指令用來在本機上拉取映像。在上一篇已經說過,當我們實例化一個容器時,如果Docker 在本地找不到指定的映像,它會自動進行拉取,因此,我們可以直接在本地運行:

docker run -i -t ubuntu /bin/bash
登入後複製

這個指令比上次的範例多了一些參數,以下解釋:

  • -i 可以保證容器中開啟STDIN

  • -t會為容器指派一個偽TTY 終端機

  • ubuntu 是鏡像的名稱,相當於上個範例中的hello-world

  • ##/bin /bash 是啟動後要在容器中執行的指令

其中-i 和-t 兩個參數可以讓容器運作起來之後,我們可以與之互動。當容器建立完成,Docker 就會執行容器中的/bin/bash 指令,因此,容器執行後我們的終端會附著到容器上:

完全掌握Docker學習之容器的使用

此時,你可以在開啟一個終端,輸入docker ps 指令,查看已經啟動的容器,得到的結果如下:

CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS       PORTS     NAMES
402c5d3468d7   ubuntu    "/bin/bash"   4 hours ago   Up 4 hours             reverent_wu
登入後複製

這裡展示了容器的ID、映像、最後執行的指令、建立時間、狀態、名稱。這裡的名稱 reverent_wu 是 Docker 自動產生的,如果需要在建立容器時指定名稱,可以使用 --name 來為容器命名。

深入容器內部

目前的狀態下,我們可以在附著到容器的終端機執行任何 ubuntu 系統下支援的指令。例如,輸入 hostname 指令,發現容器的 hostname 就是它的容器 ID。

接著,可以看一下 /etc/hosts 檔案:

root@402c5d3468d7:/# cat /etc/hosts
127.0.0.1        localhost
::1        localhost ip6-localhost ip6-loopback
fe00::0        ip6-localnet
ff00::0        ip6-mcastprefix
ff02::1        ip6-allnodes
ff02::2        ip6-allrouters
172.17.0.2        402c5d3468d7
登入後複製

你也可以自己嘗試在容器中查看進程,甚至使用 apt-get 安裝軟體包。

最後,可以輸入 exit 指令,推出容器,回傳宿主機的命令提示字元。請注意,此時再執行 docker ps 時發現,在容器的清單中,已經沒有剛剛建立的 ubuntu 容器了。

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
登入後複製

當我們退出的時候,容器就停止運作了。不過,容器並沒有被刪除,可以透過docker ps -a 指令,查看所有建立的容器,無論容器啟動與否:

CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS                     PORTS     NAMES
402c5d3468d7   ubuntu    "/bin/bash"   4 hours ago   Exited (0) 2 minutes ago             reverent_wu
登入後複製

這時,它的狀態變成了Exited (0) 2 minutes ago ,表示它在2 分鐘前推出,退出的狀態碼是0,表示正常退出。

我們可以透過一下的指令重新啟動這個容器:

docker start 402c5d3468d7
登入後複製

這個指令中,docker start 後面跟著的是容器的 ID,也可以使用容器的名稱。執行成功後,再透過docker ps 指令即可看到容器處於啟動狀態,透過docker start 指令讓容器重新啟動後,會沿用docker run 指令指定的參數,也就是啟動後會執行/bin/bash 啟動一個shell ,但是我們並沒有進入到容器的命令列當中。可以透過 docker attach 指令再次進入:

docker attach 402c5d3468d7
登入後複製

此時,就可以繼續在容器中執行指令。

如果一個容器不再使用了,可以使用 docker rm 指令將它刪除。

docker rm 402c5d3468d7
登入後複製

提供持續的服務

更多的時候,我們使用容器來運行應用程式和服務,並希望它在後台持續提供服務,這時候就需要以分離模式(或叫守護模式)來運作容器。只需要在 docker run 後面增加一個 -d 參數,就可以讓容器放到背景運行。

接下來,我們透過下面的指令再次運行一個容器:

docker run --name detached_mode -d ubuntu /bin/sh -c "while true; do echo Docker YYDS; sleep 1; done"
登入後複製

這一次,我們給這個容器明明叫detached_mode,透過-d 讓它以分離模式運行,並透過執行一段腳本,每隔1 秒列印一行Docker YYDS 。

因為它是以分離模式運作的,所以啟動後我們並不能在命令列看到列印的內容。但是可以透過 docker ps 指令看到容器在運作。

如果想讓他停止運行,可以使用 docker stop 指令。

docker stop detached_mode
登入後複製

同樣可以透過 docker start 指令再次啟動它,或者,可以透過 docker restart 重啟運行中的容器。

容器的運作狀態#

在 detached_mode 容器运行的时候,可以通过 docker logs 命令获取容器的日志。也可以增加 -f 来持续监控日志,类似于 tail -f 命令。

docker logs -f detached_mode
登入後複製

此时就可以看到一直有 Docker YYDS 被打印。

除了监控容器的日志,也可以使用 docker top 命令,查看容器内的进程。

docker top detached_mode
登入後複製

完全掌握Docker學習之容器的使用

使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。

完全掌握Docker學習之容器的使用

另外,docker exec 命令可以在容器内部运行进程。

docker exec detached_mode cat /etc/hosts
登入後複製

以上命令可以让我们直接查看容器中的 hosts 文件的内容,如果需要运行一个后台进程,在指令后面增加 -d 参数就可以了。

容器的详细信息

使用 docker inspect 命令可以查看容器的详细信息,其结果是一个 JSON 结构,包含的信息非常丰富。可以通过 -f 或者 --format 来选定想要查看的部分。

docker inspect --format '{{ .NetworkSettings.IPAddress }}' detached_mode
登入後複製

执行以上的命令,只会在命令行展示容器的 IP 地址。

推荐学习:《docker视频教程

以上是完全掌握Docker學習之容器的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

docker怎麼創建鏡像 docker怎麼創建鏡像 Apr 15, 2025 am 11:27 AM

創建 Docker 鏡像步驟:編寫包含構建指令的 Dockerfile。在終端中構建鏡像,使用 docker build 命令。標記鏡像,使用 docker tag 命令分配名稱和標籤。

docker鏡像源怎麼換國內 docker鏡像源怎麼換國內 Apr 15, 2025 am 11:30 AM

可切換到國內鏡像源,步驟如下:1. 編輯配置文件 /etc/docker/daemon.json,添加鏡像源地址;2. 保存退出後,重啟 Docker 服務 sudo systemctl restart docker,即可提升鏡像下載速度和穩定性。

docker版本怎麼看 docker版本怎麼看 Apr 15, 2025 am 11:51 AM

要獲取 Docker 版本,您可以執行以下步驟:運行 Docker 命令“docker --version”來查看客戶端和服務器版本。對於 Mac 或 Windows,還可以通過 Docker Desktop GUI 的“版本”選項卡或“關於 Docker Desktop”菜單查看版本信息。

docker容器名稱怎麼查 docker容器名稱怎麼查 Apr 15, 2025 pm 12:21 PM

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

docker怎麼查看日誌 docker怎麼查看日誌 Apr 15, 2025 pm 12:24 PM

查看 Docker 日誌的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令運行 /bin/sh 並查看日誌文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

docker desktop怎麼用 docker desktop怎麼用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

docker怎麼更新鏡像 docker怎麼更新鏡像 Apr 15, 2025 pm 12:03 PM

更新 Docker 鏡像的步驟如下:拉取最新鏡像標記新鏡像為特定標籤刪除舊鏡像(可選)重新啟動容器(如果需要)

docker怎麼搭建私有倉庫 docker怎麼搭建私有倉庫 Apr 15, 2025 am 11:06 AM

您可以構建 Docker 私有倉庫以安全地存儲和管理容器鏡像,提供嚴格的控制和安全性。步驟包括:創建存儲庫、授予訪問權限、部署倉庫、推送鏡像和拉取鏡像。優點包括安全性、版本控制、減少網絡流量和定制化。

See all articles