Docker容器運(yùn)行常用參數(shù)詳解
1、容器運(yùn)行示例
在Docker中運(yùn)行一個(gè)容器需要使用docker run命令,這個(gè)命令后面可以跟很多參數(shù)來定制容器的行為。以下是一個(gè)運(yùn)行容器示例以及參數(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:后臺運(yùn)行容器,并返回容器ID;
- --name:為容器指定一個(gè)名稱;
- -p:指定端口映射,格式為:主機(jī)端口:容器端口;
- -v:掛載一個(gè)目錄或文件;
- --restart:設(shè)置容器重啟策略,如 always、on-failure等;
- --env:設(shè)置環(huán)境變量;
- --network:連接容器到一個(gè)網(wǎng)絡(luò)。
2、容器運(yùn)行參數(shù)詳解
2.1、鏡像名
鏡像是 Docker 的核心概念之一,用于創(chuàng)建 Docker 容器。鏡像可以從鏡像倉庫中拉取。運(yùn)行容器時(shí),必須指定鏡像名。
# 運(yùn)行 Nginx 鏡像 docker run nginx:1.19
指定特定版本(標(biāo)簽)的nginx鏡像,1.19是版本號;如果不指定版本,Docker 會默認(rèn)拉取 latest 標(biāo)簽的鏡像。
注:latest標(biāo)簽,由于它的字面意思是“最新的”,所以很多時(shí)候也容易被誤解,其實(shí)latest就是個(gè)普通標(biāo)簽,不要期望它是最新或最穩(wěn)定的版本,因?yàn)樗Q于當(dāng)時(shí) lastest 標(biāo)簽被關(guān)聯(lián)到的版本。鏡像的維護(hù)者可能會使用不同的標(biāo)簽策略,因此在生產(chǎn)環(huán)境中最好明確指定具體的版本號。它只是個(gè)名字,也沒有其它附加作用,更不會自動更新。
2.2、容器名(--name)
每個(gè)運(yùn)行的容器都有一個(gè)唯一的 ID,但為了方便管理,你可以為容器指定一個(gè)易于記憶的名稱。這樣,在后續(xù)操作時(shí),可以直接使用容器名稱,而不是容器 ID。
# 容器命名為 my-nginx docker run --name my-nginx nginx
2.3、端口映射(--publish)
端口映射可以通過在運(yùn)行命令中使用 -p 選項(xiàng)(p小寫,全稱 --publish)來完成,該選項(xiàng)的語法如下: -p <主機(jī)端口>:<容器端口>。端口映射用于將容器內(nèi)部的端口映射到宿主機(jī)的端口,使得外部可以訪問容器內(nèi)運(yùn)行的服務(wù)。
# 將容器的 8080 端口映射到宿主機(jī)的 80 端口 docker run -d -p 80:8080 tomcat
2.4、目錄映射(--volume)
端口映射可以通過在運(yùn)行命令中使用 -v 選項(xiàng)(全稱 --volume)來完成,該選項(xiàng)的語法如下: -v <主機(jī)目錄>:<容器目錄>。目錄映射用于將宿主機(jī)的目錄掛載到容器內(nèi),保留容器中的數(shù)據(jù),以便數(shù)據(jù)可以在宿主機(jī)和容器之間共享。
# 將宿主機(jī)的 /data 目錄掛載到容器的 /app 目錄 docker run -d -v /data:/app tomcat
2.5、重啟策略 (--restart)
容器的重啟策略是指在容器退出時(shí)Docker是否應(yīng)該自動重啟容器。目的是為了確保容器應(yīng)用的高可用性和穩(wěn)定性,通過設(shè)置重啟策略,可以在容器出現(xiàn)故障或異常情況時(shí)自動重新啟動容器,以避免影響業(yè)務(wù)運(yùn)行。
# 設(shè)置容器在退出時(shí)總是重啟 docker run -d --restart always tomcat
重啟策略有以下幾種:
- no:不自動重啟。
- on-failure:容器因錯(cuò)誤退出(非零退出代碼)時(shí)重啟??蛇x的重啟次數(shù)可以通過--restart-max-retries設(shè)置。
- always:無論退出狀態(tài)如何,總是重啟容器。
- unless-stopped:容器除非被手動停止,否則總是重啟。
2.6、運(yùn)行模式(--detach)
在Docker中,-d(全稱 --detach) 選項(xiàng)用于啟動一個(gè)分離模式的容器,這意味著容器會在后臺運(yùn)行,不會占用當(dāng)前的終端會話。
# 后臺運(yùn)行容器 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)建一個(gè)獨(dú)立的網(wǎng)絡(luò)橋接器(bridge),容器通過此橋接器與宿主機(jī)和其他容器通信。
- host: 容器直接使用宿主機(jī)的網(wǎng)絡(luò)棧,與宿主機(jī)共享網(wǎng)絡(luò)接口。
- none: 容器沒有網(wǎng)絡(luò)連接,完全隔離。
- container:<name|id>: 容器與指定的其他容器共享網(wǎng)絡(luò)棧。
# 以橋接網(wǎng)絡(luò)模式運(yùn)行容器 docker run -d --network bridge tomcat
2.8、環(huán)境變量(--env)
在 Docker 中,-e(全稱 --env)選項(xiàng)用于設(shè)置環(huán)境變量。環(huán)境變量用于向容器傳遞運(yùn)行時(shí)所需的配置信息。
# 向容器傳遞一個(gè)環(huán)境變量 ENV,其值為 production docker run -d -e "ENV=production" tomcat
2.9、特權(quán)模式(--privileged)
在Docker中,--privileged=true選項(xiàng)允許容器以特權(quán)模式(超級用戶權(quán)限)運(yùn)行,從而獲得幾乎與主機(jī)相同的權(quán)限。這意味著容器可以訪問和控制主機(jī)的所有硬件設(shè)備、操作系統(tǒng)內(nèi)核和其他系統(tǒng)資源。
# 賦予容器特權(quán)模式 docker run --privileged -d tomcat
到此這篇關(guān)于Docker容器運(yùn)行常用參數(shù)詳解的文章就介紹到這了,更多相關(guān)Docker運(yùn)行常用參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker容器名稱沖突錯(cuò)誤的原因分析和有效解決方案
這篇文章主要介紹了Docker容器名稱沖突的問題,分析了錯(cuò)誤發(fā)生的原因,并提供了幾種解決方案:刪除現(xiàn)有容器、重命名容器、使用不同名稱創(chuàng)建新容器,以及更新現(xiàn)有容器的重啟策略,文章還推薦了預(yù)防措施,需要的朋友可以參考下2025-10-10
docker環(huán)境下java參數(shù)傳遞與獲取
這篇文章主要為大家詳細(xì)介紹了docker環(huán)境下如何實(shí)現(xiàn)java參數(shù)傳遞與獲取,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以了解下2025-08-08
docker在windows創(chuàng)建卷后本地找不到的完美解決方法
這篇文章主要介紹了docker在windows創(chuàng)建卷后本地找不到的完美解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02
使用Docker部署openGauss國產(chǎn)數(shù)據(jù)庫的操作方法
openGauss是一款支持SQL2003標(biāo)準(zhǔn)語法,支持主備部署的高可用關(guān)系型數(shù)據(jù)庫,這篇文章主要介紹了使用Docker部署openGauss國產(chǎn)數(shù)據(jù)庫,需要的朋友可以參考下2022-10-10
Spring Boot應(yīng)用通過Docker發(fā)布部署的流程分析
將Spring Boot項(xiàng)目部署到docker中有兩種方法,手動部署和插件部署,本文通過實(shí)例代碼介紹了idea創(chuàng)建spring boot項(xiàng)目的詳細(xì)過程,感興趣的朋友一起看看吧2021-09-09
docker容器下配置jupyter notebook的操作
這篇文章主要介紹了docker容器下配置jupyter notebook的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Centos Docker1.12 遠(yuǎn)程Rest api訪問的配置方法
這篇文章主要介紹了Centos Docker1.12 遠(yuǎn)程Rest api訪問的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01

