Docker容器運行常用參數(shù)詳解
1、容器運行示例
在Docker中運行一個容器需要使用docker run
命令,這個命令后面可以跟很多參數(shù)來定制容器的行為。以下是一個運行容器示例以及參數(shù)詳解。
docker run -d --name my-container -p 8080:80 -v /host/data:/container/data --restart=always --env MY_VAR=value --network bridge my-image
- -d:后臺運行容器,并返回容器ID;
- --name:為容器指定一個名稱;
- -p:指定端口映射,格式為:主機端口:容器端口;
- -v:掛載一個目錄或文件;
- --restart:設(shè)置容器重啟策略,如 always、on-failure等;
- --env:設(shè)置環(huán)境變量;
- --network:連接容器到一個網(wǎng)絡(luò)。
2、容器運行參數(shù)詳解
2.1、鏡像名
鏡像是 Docker 的核心概念之一,用于創(chuàng)建 Docker 容器。鏡像可以從鏡像倉庫中拉取。運行容器時,必須指定鏡像名。
# 運行 Nginx 鏡像 docker run nginx:1.19
指定特定版本(標(biāo)簽)的nginx鏡像,1.19是版本號;如果不指定版本,Docker 會默認(rèn)拉取 latest 標(biāo)簽的鏡像。
注:latest標(biāo)簽,由于它的字面意思是“最新的”,所以很多時候也容易被誤解,其實latest就是個普通標(biāo)簽,不要期望它是最新或最穩(wěn)定的版本,因為它取決于當(dāng)時 lastest 標(biāo)簽被關(guān)聯(lián)到的版本。鏡像的維護者可能會使用不同的標(biāo)簽策略,因此在生產(chǎn)環(huán)境中最好明確指定具體的版本號。它只是個名字,也沒有其它附加作用,更不會自動更新。
2.2、容器名(--name)
每個運行的容器都有一個唯一的 ID,但為了方便管理,你可以為容器指定一個易于記憶的名稱。這樣,在后續(xù)操作時,可以直接使用容器名稱,而不是容器 ID。
# 容器命名為 my-nginx docker run --name my-nginx nginx
2.3、端口映射(--publish)
端口映射可以通過在運行命令中使用 -p 選項(p小寫,全稱 --publish)來完成,該選項的語法如下: -p <主機端口>:<容器端口>。端口映射用于將容器內(nèi)部的端口映射到宿主機的端口,使得外部可以訪問容器內(nèi)運行的服務(wù)。
# 將容器的 8080 端口映射到宿主機的 80 端口 docker run -d -p 80:8080 tomcat
2.4、目錄映射(--volume)
端口映射可以通過在運行命令中使用 -v 選項(全稱 --volume)來完成,該選項的語法如下: -v <主機目錄>:<容器目錄>。目錄映射用于將宿主機的目錄掛載到容器內(nèi),保留容器中的數(shù)據(jù),以便數(shù)據(jù)可以在宿主機和容器之間共享。
# 將宿主機的 /data 目錄掛載到容器的 /app 目錄 docker run -d -v /data:/app tomcat
2.5、重啟策略 (--restart)
容器的重啟策略是指在容器退出時Docker是否應(yīng)該自動重啟容器。目的是為了確保容器應(yīng)用的高可用性和穩(wěn)定性,通過設(shè)置重啟策略,可以在容器出現(xiàn)故障或異常情況時自動重新啟動容器,以避免影響業(yè)務(wù)運行。
# 設(shè)置容器在退出時總是重啟 docker run -d --restart always tomcat
重啟策略有以下幾種:
- no:不自動重啟。
- on-failure:容器因錯誤退出(非零退出代碼)時重啟。可選的重啟次數(shù)可以通過--restart-max-retries設(shè)置。
- always:無論退出狀態(tài)如何,總是重啟容器。
- unless-stopped:容器除非被手動停止,否則總是重啟。
2.6、運行模式(--detach)
在Docker中,-d(全稱 --detach) 選項用于啟動一個分離模式的容器,這意味著容器會在后臺運行,不會占用當(dāng)前的終端會話。
# 后臺運行容器 docker run -d tomcat
2.7、網(wǎng)絡(luò)模式(--network)
Docker 提供了多種網(wǎng)絡(luò)模式,適應(yīng)不同的網(wǎng)絡(luò)需求。 常見的網(wǎng)絡(luò)模式有:
- bridge: 默認(rèn)模式,Docker 創(chuàng)建一個獨立的網(wǎng)絡(luò)橋接器(bridge),容器通過此橋接器與宿主機和其他容器通信。
- host: 容器直接使用宿主機的網(wǎng)絡(luò)棧,與宿主機共享網(wǎng)絡(luò)接口。
- none: 容器沒有網(wǎng)絡(luò)連接,完全隔離。
- container:<name|id>: 容器與指定的其他容器共享網(wǎng)絡(luò)棧。
# 以橋接網(wǎng)絡(luò)模式運行容器 docker run -d --network bridge tomcat
2.8、環(huán)境變量(--env)
在 Docker 中,-e(全稱 --env)選項用于設(shè)置環(huán)境變量。環(huán)境變量用于向容器傳遞運行時所需的配置信息。
# 向容器傳遞一個環(huán)境變量 ENV,其值為 production docker run -d -e "ENV=production" tomcat
2.9、特權(quán)模式(--privileged)
在Docker中,--privileged=true選項允許容器以特權(quán)模式(超級用戶權(quán)限)運行,從而獲得幾乎與主機相同的權(quán)限。這意味著容器可以訪問和控制主機的所有硬件設(shè)備、操作系統(tǒng)內(nèi)核和其他系統(tǒng)資源。
# 賦予容器特權(quán)模式 docker run --privileged -d tomcat
到此這篇關(guān)于Docker容器運行常用參數(shù)詳解的文章就介紹到這了,更多相關(guān)Docker運行常用參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker.v19安裝和配置Docker Compose編排工具的方法
這篇文章主要介紹了安裝Docker.v19和配置Docker Compose編排工具的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-06-06Ubuntu15.10安裝docker和docker-compose教程
這篇文章主要介紹了Ubuntu15.10安裝docker和docker-compose的教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03dockerfile中su命令切換用戶激活環(huán)境,報錯su: invalid option
本文主要介紹了dockerfile中su命令切換用戶激活環(huán)境以及報錯su: invalid option -- ‘n‘的問題解決,具有一定的參考價值,感興趣的可以了解一下2025-01-01Docker for windows pull鏡像文件的安裝位置改變的方法
這篇文章主要介紹了Docker for windows pull鏡像文件的安裝位置改變的方法的相關(guān)資料,需要的朋友可以參考下2016-12-12