docker中run命令30個(gè)常用參數(shù)詳解和示例
0.前言
Docker run 命令是在 Docker 中創(chuàng)建和運(yùn)行容器的主要命令之一。它允許根據(jù)需要配置容器的各種屬性。 下面是 docker run
命令的一些常見(jiàn)用法和示例,我們共同學(xué)習(xí)。
1.docker run 命令示例
以下是一個(gè)比較常見(jiàn)的 Docker run 命令示例,用于創(chuàng)建一個(gè) NGINX 容器:
docker run -d \ --name my_nginx \ -p 80:80 \ -v /path/to/nginx/conf:/etc/nginx/conf.d \ -v /path/to/nginx/html:/usr/share/nginx/html \ nginx:latest
-d
: 在后臺(tái)以守護(hù)進(jìn)程模式運(yùn)行容器。--name my_nginx
: 為容器指定一個(gè)名稱(chēng)(可以根據(jù)需要更改為您喜歡的名稱(chēng))。-p 80:80
: 將主機(jī)的端口 80 映射到容器的端口 80。這樣,您可以通過(guò)訪問(wèn)http://localhost
來(lái)訪問(wèn) NGINX 容器中的網(wǎng)站。-v /path/to/nginx/conf:/etc/nginx/conf.d
: 將主機(jī)上的 NGINX 配置文件目錄掛載到容器中的/etc/nginx/conf.d
目錄,以便使用自定義的 NGINX 配置。-v /path/to/nginx/html:/usr/share/nginx/html
: 將主機(jī)上的 HTML 文件目錄掛載到容器中的/usr/share/nginx/html
目錄,以便在容器中提供自定義的靜態(tài)網(wǎng)頁(yè)內(nèi)容。nginx:latest
: 指定要使用的 NGINX 鏡像及其標(biāo)簽(可以根據(jù)實(shí)際情況替換為您自己的鏡像名稱(chēng)和標(biāo)簽)。
Docker run 命令是在 Docker 中創(chuàng)建和運(yùn)行容器的主要命令之一。它允許您根據(jù)需要配置容器的各種屬性。以下是 Docker run 命令的30個(gè)常用參數(shù)的詳細(xì)解釋和示例用法,幫助您更好地理解和使用這些參數(shù)。
-d
或--detach
:以后臺(tái)模式運(yùn)行容器,將容器放置在后臺(tái)運(yùn)行,作為守護(hù)進(jìn)程。
示例:docker run -d image_name
-it
:以交互模式運(yùn)行容器,允許與容器進(jìn)行交互。
示例:docker run -it image_name
--name
:為容器指定一個(gè)名稱(chēng)。
示例:docker run --name container_name image_name
-p
:將容器的端口映射到主機(jī)上的一個(gè)端口。
示例:docker run -p host_port:container_port image_name
-v
:掛載主機(jī)上的文件或目錄到容器內(nèi)部。
示例:docker run -v host_path:container_path image_name
-e
:設(shè)置容器的環(huán)境變量。
示例:docker run -e ENV_VARIABLE=value image_name
--restart
:指定容器在退出時(shí)的重啟策略。
示例:docker run --restart=always image_name
--link
:將容器連接到另一個(gè)容器,在兩個(gè)容器之間建立網(wǎng)絡(luò)連接。
示例:docker run --link container_name:image_alias image_name
--dns
:指定容器使用的自定義 DNS 服務(wù)器。
示例:docker run --dns 8.8.8.8 image_name
--dns-search
:指定容器的 DNS 搜索域。
示例:docker run --dns-search example.com image_name
--cap-add
和--cap-drop
:增加或刪除容器的 Linux 能力,用于控制容器的權(quán)限。
示例:docker run --cap-add=SYS_ADMIN image_name
--privileged
:給容器賦予特權(quán),可以訪問(wèn)主機(jī)的設(shè)備。
示例:docker run --privileged image_name
--tmpfs
:在容器內(nèi)創(chuàng)建臨時(shí)文件系統(tǒng),用于存儲(chǔ)臨時(shí)數(shù)據(jù)。
示例:docker run --tmpfs /tmp image_name
--ulimit
:設(shè)置容器的資源限制,如最大打開(kāi)文件數(shù)、最大進(jìn)程數(shù)等。
示例:docker run --ulimit nofile=1024:1024 image_name
--security-opt
:設(shè)置容器的安全選項(xiàng),如 AppArmor 配置、Seccomp 配置等。
示例:docker run --security-opt seccomp:unconfined image_name
--cpu-shares
:設(shè)置容器的 CPU 份額,用于控制 CPU 資源的分配。
示例:docker run --cpu-shares 512 image_name
--memory
:設(shè)置容器可使用的內(nèi)存限制。
示例:docker run --memory 1g image_name
--network
:指定容器使用的網(wǎng)絡(luò)模式。
示例:docker run --network bridge image_name
--hostname
:設(shè)置容器的主機(jī)名。
示例:docker run --hostname my_container image_name
--user
:指定容器運(yùn)行時(shí)的用戶(hù)名或 UID。
示例:docker run --user username image_name
--volume-driver
:指定容器使用的卷驅(qū)動(dòng)程序。
示例:docker run --volume-driver my_driver image_name
--shm-size
:設(shè)置容器的共享內(nèi)存大小。
示例:docker run --shm-size 2g image_name
--add-host
:向容器的/etc/hosts
文件添加自定義主機(jī)名和 IP 映射。
示例:docker run --add-host myhost:192.168.0.100 image_name
--read-only
:將容器的文件系統(tǒng)設(shè)置為只讀模式。
示例:docker run --read-only image_name25.
–cpu-quota:設(shè)置容器的 CPU 配額,以微秒為單位。 示例:
docker run --cpu-quota=50000 image_name`--cpu-period
:設(shè)置容器的 CPU 周期,以微秒為單位。
示例:docker run --cpu-period=100000 image_name
--dns-option
:為容器的 DNS 配置添加自定義選項(xiàng)。
示例:docker run --dns-option=timeout:5 image_name
--sysctl
:設(shè)置容器的內(nèi)核參數(shù)。
示例:docker run --sysctl net.ipv4.ip_forward=1 image_name
--label
:為容器添加標(biāo)簽,用于識(shí)別和組織容器。
示例:docker run --label env=production image_name
--workdir
:設(shè)置容器的工作目錄。
示例:docker run --workdir /app image_name
2.Docker run 多種用法
知其然知其所以然
Docker run 命令是用于創(chuàng)建和運(yùn)行容器的主要命令之一。它可以根據(jù)提供的參數(shù)配置容器的各種屬性。下面是 Docker run 命令的一些常見(jiàn)用法和示例,從入門(mén)到精通,幫助您更好地理解和使用該命令。
1. 基本用法
最簡(jiǎn)單的 Docker run 命令形式如下:
docker run image_name
這將使用指定的鏡像創(chuàng)建一個(gè)新的容器,并在容器中運(yùn)行默認(rèn)的啟動(dòng)命令。
2. 啟動(dòng)交互式容器
使用 -it
參數(shù)可以啟動(dòng)一個(gè)交互式容器,允許您與容器進(jìn)行交互,類(lèi)似于在終端中打開(kāi)一個(gè)新的會(huì)話:
docker run -it image_name
這將在容器內(nèi)打開(kāi)一個(gè)新的終端,并將您連接到容器的標(biāo)準(zhǔn)輸入(stdin)。
3. 映射端口
使用 -p
參數(shù)可以將容器的端口映射到主機(jī)上的一個(gè)端口,以便可以通過(guò)主機(jī)訪問(wèn)容器中運(yùn)行的服務(wù):
docker run -p host_port:container_port image_name
例如,將容器的端口 8080 映射到主機(jī)的端口 80:
docker run -p 80:8080 image_name
這樣,您可以通過(guò)訪問(wèn) http://localhost
來(lái)訪問(wèn)容器中的服務(wù)。
4. 掛載文件/目錄
使用 -v
參數(shù)可以將主機(jī)上的文件或目錄掛載到容器內(nèi)部,實(shí)現(xiàn)主機(jī)和容器之間的文件共享:
docker run -v host_path:container_path image_name
例如,將主機(jī)上的 /path/to/host/directory
目錄掛載到容器的 /path/to/container/directory
目錄:
docker run -v /path/to/host/directory:/path/to/container/directory image_name
這樣,容器內(nèi)部的操作將反映在主機(jī)上的相應(yīng)目錄中,實(shí)現(xiàn)了數(shù)據(jù)的共享和持久化。
5. 設(shè)置環(huán)境變量
使用 -e
參數(shù)可以設(shè)置容器的環(huán)境變量:
docker run -e ENV_VARIABLE=value image_name
例如,設(shè)置一個(gè)名為 DATABASE_URL
的環(huán)境變量:
docker run -e DATABASE_URL=mysql://user:password@host:port/database image_name
這樣,在容器內(nèi)部可以通過(guò)讀取該環(huán)境變量來(lái)配置應(yīng)用程序。
6. 指定容器名稱(chēng)
使用 --name
參數(shù)可以為容器指定一個(gè)名稱(chēng):
docker run --name container_name image_name
例如:
docker run --name my_container image_name
這樣,您可以使用容器名稱(chēng)來(lái)管理和操作容器,而不僅僅依賴(lài)于容器的 ID。
7. 后臺(tái)運(yùn)行容器
使用 -d
參數(shù)可以將容器放置在后臺(tái)運(yùn)行,作為守護(hù)進(jìn)程:
docker run -d image_name
8. 重啟策略
使用 --restart
參數(shù)可以指定容器在退出時(shí)的重啟策略,常見(jiàn)的選項(xiàng)有 no
、on-failure[:max-retries]
、always
、unless-stopped
。
docker run --restart=always image_name
這將在容器退出時(shí)自動(dòng)重新啟動(dòng)容器,確保容器的持續(xù)可用性。
9. 其他參數(shù)
除了上面的常用的參數(shù),其實(shí)還有一些參數(shù)也是比較有用的
Docker run 還有許多其他參數(shù)可用于更高級(jí)的容器配置,如網(wǎng)絡(luò)設(shè)置、安全選項(xiàng)、資源限制等
--restart
:指定容器在退出時(shí)的重啟策略,可選值為no
、on-failure[:max-retries]
、always
、unless-stopped
。
例如:docker run --restart=always image_name
--link
:將容器連接到另一個(gè)容器,在兩個(gè)容器之間建立網(wǎng)絡(luò)連接。
例如:docker run --link container_name:image_alias image_name
--dns
:指定容器使用的自定義 DNS 服務(wù)器。
例如:docker run --dns 8.8.8.8 image_name
--dns-search
:指定容器的 DNS 搜索域。
例如:docker run --dns-search example.com image_name
--cap-add
和--cap-drop
:增加或刪除容器的 Linux 能力,用于控制容器的權(quán)限。
例如:docker run --cap-add=SYS_ADMIN image_name
--privileged
:給容器賦予特權(quán),可以訪問(wèn)主機(jī)的設(shè)備。
例如:docker run --privileged image_name
--tmpfs
:在容器內(nèi)創(chuàng)建臨時(shí)文件系統(tǒng),用于存儲(chǔ)臨時(shí)數(shù)據(jù)。
例如:docker run --tmpfs /tmp image_name
--ulimit
:設(shè)置容器的資源限制,如最大打開(kāi)文件數(shù)、最大進(jìn)程數(shù)等。
例如:docker run --ulimit nofile=1024:1024 image_name
--security-opt
:設(shè)置容器的安全選項(xiàng),如 AppArmor 配置、Seccomp 配置等。
例如:docker run --security-opt seccomp:unconfined image_name
--cpu-shares
:設(shè)置容器的 CPU 份額,用于控制 CPU 資源的分配。
例如:docker run --cpu-shares 512 image_name
--memory
:設(shè)置容器可使用的內(nèi)存限制。
例如:docker run --memory 1g image_name
2. docker run 命令參數(shù)詳解
docker run
命令是Docker中用于創(chuàng)建并運(yùn)行容器的命令。它有許多參數(shù),用于控制容器的運(yùn)行方式、網(wǎng)絡(luò)連接、環(huán)境變量等。下面是對(duì)一些常用參數(shù)的詳細(xì)解釋?zhuān)?/p>
1. -d
:以后臺(tái)模式(detached mode)運(yùn)行容器,即在容器啟動(dòng)后將其放入后臺(tái)運(yùn)行。
`docker run -d image_name
2. -it
:以交互模式(interactive mode)運(yùn)行容器,即啟動(dòng)一個(gè)新的終端會(huì)話并連接到正在運(yùn)行的容器。
docker run -it image_name ``
3. --name
:為容器指定一個(gè)名稱(chēng)。
`docker run --name container_name image_name
4. -p
:將容器的端口映射到主機(jī)的端口。
`docker run -p host_port:container_port image_name
這個(gè)參數(shù)允許你將容器內(nèi)部的端口映射到主機(jī)上,以便可以通過(guò)主機(jī)的端口訪問(wèn)容器內(nèi)的服務(wù)。
5. -v
:將主機(jī)的目錄或文件掛載到容器中。
`docker run -v host_path:container_path image_name
這個(gè)參數(shù)允許你將主機(jī)上的目錄或文件掛載到容器中,以便在容器中使用或共享數(shù)據(jù)。
6. --network
:指定容器使用的網(wǎng)絡(luò)類(lèi)型。
`docker run --network network_name image_name
這個(gè)參數(shù)允許你將容器連接到指定的網(wǎng)絡(luò),以便容器可以與其他容器或主機(jī)進(jìn)行通信。
7. --env
:設(shè)置容器的環(huán)境變量。
`docker run --env key=value image_name
這個(gè)參數(shù)允許你在容器中設(shè)置環(huán)境變量,以便容器內(nèi)的應(yīng)用程序可以使用這些變量。
8. --rm
:容器退出時(shí)自動(dòng)刪除容器。這在臨時(shí)容器中非常有用。
`docker run --rm image_name
9. --link
:將容器連接到另一個(gè)容器。
`docker run --link container_name:image_alias image_name
這個(gè)參數(shù)允許你將一個(gè)容器連接到另一個(gè)容器,以便容器之間可以進(jìn)行通信。
10. --privileged
:以特權(quán)模式運(yùn)行容器,具有訪問(wèn)主機(jī)系統(tǒng)的權(quán)限。
`docker run --privileged image_name
這個(gè)參數(shù)允許容器訪問(wèn)主機(jī)的設(shè)備,以便執(zhí)行特權(quán)操作。
11. --volume-driver
:指定容器數(shù)據(jù)卷的驅(qū)動(dòng)程序。
`docker run --volume-driver driver_name -v volume_name:image_name
這個(gè)參數(shù)允許你指定一個(gè)自定義的數(shù)據(jù)卷驅(qū)動(dòng)程序,以便在容器中使用數(shù)據(jù)卷。
12. --ulimit
:設(shè)置容器的資源限制。
`docker run --ulimit resource_name=value image_name
這個(gè)參數(shù)允許你設(shè)置容器的資源限制,如最大打開(kāi)文件數(shù)、最大進(jìn)程數(shù)等。
13. --detach-keys
:指定分離容器的鍵盤(pán)序列。
`docker run --detach-keys="ctrl-]" image_name
這個(gè)參數(shù)允許你自定義分離容器的鍵盤(pán)序列,用于在交互模式下分離容器。
14. --env-file
:從文件中讀取環(huán)境變量。
`docker run --env-file=file_path image_name
這個(gè)參數(shù)允許你從文件中讀取環(huán)境變量,并將其傳遞給容器。
15. --hostname
:設(shè)置容器的主機(jī)名。
`docker run --hostname=custom_hostname image_name
這個(gè)參數(shù)允許你為容器設(shè)置一個(gè)自定義的主機(jī)名。
16. --dns
:設(shè)置容器使用的 DNS 服務(wù)器。
`docker run --dns=dns_server_ip image_name
這個(gè)參數(shù)允許你為容器設(shè)置使用特定的 DNS 服務(wù)器進(jìn)行域名解析。
17. --shm-size
:設(shè)置容器的共享內(nèi)存大小。
`docker run --shm-size=2g image_name
這個(gè)參數(shù)允許你為容器設(shè)置共享內(nèi)存的大小,以便容器可以使用更多的內(nèi)存資源。
18. --link
:連接到其他容器。
`docker run --link=container_name:image_alias image_name
這個(gè)參數(shù)允許你將一個(gè)容器連接到另一個(gè)容器,并為連接的容器指定一個(gè)別名。
19. --restart
:設(shè)置容器的重啟策略。
`docker run --restart=always image_name
這個(gè)參數(shù)允許你設(shè)置容器在退出時(shí)的重啟策略,可以設(shè)置為 `no`、`on-failure` 或 `always`。
20. --cpu-shares
:設(shè)置容器的 CPU 份額。
`docker run --cpu-shares=512 image_name
這個(gè)參數(shù)允許你為容器設(shè)置 CPU 的份額,用于控制容器在 CPU 資源競(jìng)爭(zhēng)時(shí)的優(yōu)先級(jí)。
21. --memory
:設(shè)置容器的內(nèi)存限制。
`docker run --memory=1g image_name
這個(gè)參數(shù)允許你為容器設(shè)置內(nèi)存的限制,以確保容器不會(huì)占用過(guò)多的內(nèi)存資源。
22. --cap-add
和 --cap-drop
:添加或刪除容器的特權(quán)。
`docker run --cap-add=SYS_ADMIN image_name
這些參數(shù)允許你為容器添加或刪除特定的權(quán)限,用于控制容器的安全性。
23. --rm
:容器退出時(shí)自動(dòng)刪除容器。這在臨時(shí)容器中非常有用。
`docker run --rm image_name
24. --link
:將容器連接到另一個(gè)容器。
`docker run --link container_name:image_alias image_name
這個(gè)參數(shù)允許你將一個(gè)容器連接到另一個(gè)容器,以便容器之間可以進(jìn)行通信。
25. --privileged
:以特權(quán)模式運(yùn)行容器,具有訪問(wèn)主機(jī)系統(tǒng)的權(quán)限。
`docker run --privileged image_name
這個(gè)參數(shù)允許容器訪問(wèn)主機(jī)的設(shè)備,以便執(zhí)行特權(quán)操作。
26. --volume-driver
:指定容器數(shù)據(jù)卷的驅(qū)動(dòng)程序。
`docker run --volume-driver driver_name -v volume_name:image_name
這個(gè)參數(shù)允許你指定一個(gè)自定義的數(shù)據(jù)卷驅(qū)動(dòng)程序,以便在容器中使用數(shù)據(jù)卷。
27. --ulimit
:設(shè)置容器的資源限制。
`docker run --ulimit resource_name=value image_name
這個(gè)參數(shù)允許你設(shè)置容器的資源限制,如最大打開(kāi)文件數(shù)、最大進(jìn)程數(shù)等。
3.參考文檔
Docker run 命令參考: http://edu.jb51.net/docker/docker-command-manual-run.html 網(wǎng)站提供了一個(gè)簡(jiǎn)明的 Docker run 命令參考,解釋了一些常用參數(shù)的含義和用法,并提供了示例。
Docker run 命令文檔: https://docs.docker.com/engine/reference/run/官方文檔中關(guān)于 Docker run 命令的詳細(xì)說(shuō)明,包括所有參數(shù)的解釋和示例用法。
https://docker-curriculum.com/#docker-run這是一個(gè)國(guó)外的網(wǎng)站提供了一些具體的 Docker run 命令示例,涵蓋了各種常見(jiàn)的用例和配置。
總結(jié)
到此這篇關(guān)于docker中run命令30個(gè)常用參數(shù)詳解的文章就介紹到這了,更多相關(guān)docker run命令常用參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker從零開(kāi)始學(xué)習(xí)之Commit提交命令
docker commit命令是用于根據(jù)docker容器的改變創(chuàng)建一個(gè)新的docker鏡像,下面這篇文章主要給大家介紹了關(guān)于Docker從零開(kāi)始學(xué)習(xí)之Commit提交命令的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05快速使用docker-compose部署clickhouse的教程
ClickHouse 的工作速度比傳統(tǒng)方法快 100-1000 倍。它適用于大數(shù)據(jù)、業(yè)務(wù)分析和時(shí)間序列數(shù)據(jù)。在這個(gè)小教程中,我將向您展示如何以最少的設(shè)置安裝 ClickHouse,感興趣的朋友一起看看吧2021-11-11Docker安裝部署RabbitMQ的實(shí)現(xiàn)步驟
RabbitMQ是一款開(kāi)源的消息隊(duì)列中間件,能夠在分布式系統(tǒng)中實(shí)現(xiàn)可靠的消息傳遞,本文主要介紹了Docker安裝部署RabbitMQ的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10Docker實(shí)現(xiàn)Mariadb分庫(kù)分表及讀寫(xiě)分離功能
這篇文章主要給大家介紹了關(guān)于Docker實(shí)現(xiàn)Mariadb分庫(kù)分表及讀寫(xiě)分離功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Docker部署SpringBoot項(xiàng)目,本地運(yùn)行正常,部署至服務(wù)器報(bào)錯(cuò)zip file close
這篇文章主要介紹了Docker部署SpringBoot項(xiàng)目,本地運(yùn)行正常,部署至服務(wù)器報(bào)錯(cuò)zip file closed問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06