搜尋
首頁運維Docker完全掌握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刪除
Linux容器:Docker的基礎Linux容器:Docker的基礎Apr 14, 2025 am 12:14 AM

LXC是Docker的基礎,通過Linux內核的cgroups和namespaces實現資源和環境隔離。 1)資源隔離:cgroups限制CPU、內存等資源。 2)環境隔離:namespaces提供獨立的進程、網絡、文件系統視圖。

Linux上的Docker:最佳實踐和技巧Linux上的Docker:最佳實踐和技巧Apr 13, 2025 am 12:15 AM

在Linux上使用Docker的最佳實踐包括:1.使用dockerrun命令創建和運行容器,2.利用DockerCompose管理多容器應用,3.定期清理未使用的鏡像和容器,4.採用多階段構建優化鏡像大小,5.限制容器資源使用提升安全性,6.遵循Dockerfile最佳實踐提高可讀性和維護性。這些實踐能幫助用戶高效使用Docker,避免常見問題並優化容器化應用。

將Docker與Linux一起使用:綜合指南將Docker與Linux一起使用:綜合指南Apr 12, 2025 am 12:07 AM

在Linux上使用Docker可以提高開發和部署效率。 1.安裝Docker:使用腳本在Ubuntu上安裝Docker。 2.驗證安裝:運行sudodockerrunhello-world。 3.基本用法:創建Nginx容器dockerrun--namemy-nginx-p8080:80-dnginx。 4.高級用法:創建自定義鏡像,使用Dockerfile構建並運行。 5.優化與最佳實踐:使用多階段構建和DockerCompose,遵循編寫Dockerfile的最佳實踐。

Docker監視:收集指標和跟踪集裝箱健康Docker監視:收集指標和跟踪集裝箱健康Apr 10, 2025 am 09:39 AM

Docker監控的核心在於收集和分析容器的運行數據,主要包括CPU使用率、內存使用、網絡流量和磁盤I/O等指標。通過使用Prometheus、Grafana和cAdvisor等工具,可以實現對容器的全面監控和性能優化。

Docker群:建築物可擴展和彈性的容器簇Docker群:建築物可擴展和彈性的容器簇Apr 09, 2025 am 12:11 AM

DockerSwarm可用於構建可擴展和高可用性的容器集群。 1)初始化Swarm集群使用dockerswarminit。 2)加入Swarm集群使用dockerswarmjoin--token:。 3)創建服務使用dockerservicecreate--namemy-nginx--replicas3nginx。 4)部署複雜服務使用dockerstackdeploy-cdocker-compose.ymlmyapp。

Kubernetes的Docker:用於企業應用程序的集裝箱編排Kubernetes的Docker:用於企業應用程序的集裝箱編排Apr 08, 2025 am 12:07 AM

如何利用Docker和Kubernetes進行企業應用的容器編排?通過以下步驟實現:創建Docker鏡像並推送到DockerHub。在Kubernetes中創建Deployment和Service以部署應用。使用Ingress管理外部訪問。應用性能優化和最佳實踐,如多階段構建和資源限制。

Docker故障排除:診斷和解決常見問題Docker故障排除:診斷和解決常見問題Apr 07, 2025 am 12:15 AM

Docker常見問題可以通過以下步驟診斷和解決:1.查看容器狀態和日誌,2.檢查網絡配置,3.確保卷掛載正確。通過這些方法,可以快速定位並修復Docker中的問題,提升系統穩定性和性能。

Docker面試問題:Ace您的DevOps工程採訪Docker面試問題:Ace您的DevOps工程採訪Apr 06, 2025 am 12:01 AM

Docker是DevOps工程師必備的技能。 1.Docker是開源的容器化平台,通過將應用程序及其依賴打包到容器中,實現隔離和可移植性。 2.Docker的工作原理包括命名空間、控制組和聯合文件系統。 3.基本用法包括創建、運行和管理容器。 4.高級用法包括使用DockerCompose管理多容器應用。 5.常見錯誤有容器無法啟動、端口映射問題和數據持久化問題,調試技巧包括查看日誌、進入容器和查看詳細信息。 6.性能優化和最佳實踐包括鏡像優化、資源限制、網絡優化和使用Dockerfile的最佳實踐。

See all articles

熱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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中