docker中run命令30個常用參數(shù)詳解和示例
0.前言

Docker run 命令是在 Docker 中創(chuàng)建和運行容器的主要命令之一。它允許根據(jù)需要配置容器的各種屬性。 下面是 docker run 命令的一些常見用法和示例,我們共同學習。
1.docker run 命令示例
以下是一個比較常見的 Docker run 命令示例,用于創(chuàng)建一個 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: 在后臺以守護進程模式運行容器。--name my_nginx: 為容器指定一個名稱(可以根據(jù)需要更改為您喜歡的名稱)。-p 80:80: 將主機的端口 80 映射到容器的端口 80。這樣,您可以通過訪問http://localhost來訪問 NGINX 容器中的網(wǎng)站。-v /path/to/nginx/conf:/etc/nginx/conf.d: 將主機上的 NGINX 配置文件目錄掛載到容器中的/etc/nginx/conf.d目錄,以便使用自定義的 NGINX 配置。-v /path/to/nginx/html:/usr/share/nginx/html: 將主機上的 HTML 文件目錄掛載到容器中的/usr/share/nginx/html目錄,以便在容器中提供自定義的靜態(tài)網(wǎng)頁內(nèi)容。nginx:latest: 指定要使用的 NGINX 鏡像及其標簽(可以根據(jù)實際情況替換為您自己的鏡像名稱和標簽)。
Docker run 命令是在 Docker 中創(chuàng)建和運行容器的主要命令之一。它允許您根據(jù)需要配置容器的各種屬性。以下是 Docker run 命令的30個常用參數(shù)的詳細解釋和示例用法,幫助您更好地理解和使用這些參數(shù)。
-d或--detach:以后臺模式運行容器,將容器放置在后臺運行,作為守護進程。
示例:docker run -d image_name-it:以交互模式運行容器,允許與容器進行交互。
示例:docker run -it image_name--name:為容器指定一個名稱。
示例:docker run --name container_name image_name-p:將容器的端口映射到主機上的一個端口。
示例:docker run -p host_port:container_port image_name-v:掛載主機上的文件或目錄到容器內(nèi)部。
示例:docker run -v host_path:container_path image_name-e:設置容器的環(huán)境變量。
示例:docker run -e ENV_VARIABLE=value image_name--restart:指定容器在退出時的重啟策略。
示例:docker run --restart=always image_name--link:將容器連接到另一個容器,在兩個容器之間建立網(wǎng)絡連接。
示例:docker run --link container_name:image_alias image_name--dns:指定容器使用的自定義 DNS 服務器。
示例: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 能力,用于控制容器的權限。
示例:docker run --cap-add=SYS_ADMIN image_name--privileged:給容器賦予特權,可以訪問主機的設備。
示例:docker run --privileged image_name--tmpfs:在容器內(nèi)創(chuàng)建臨時文件系統(tǒng),用于存儲臨時數(shù)據(jù)。
示例:docker run --tmpfs /tmp image_name--ulimit:設置容器的資源限制,如最大打開文件數(shù)、最大進程數(shù)等。
示例:docker run --ulimit nofile=1024:1024 image_name--security-opt:設置容器的安全選項,如 AppArmor 配置、Seccomp 配置等。
示例:docker run --security-opt seccomp:unconfined image_name--cpu-shares:設置容器的 CPU 份額,用于控制 CPU 資源的分配。
示例:docker run --cpu-shares 512 image_name--memory:設置容器可使用的內(nèi)存限制。
示例:docker run --memory 1g image_name--network:指定容器使用的網(wǎng)絡模式。
示例:docker run --network bridge image_name--hostname:設置容器的主機名。
示例:docker run --hostname my_container image_name--user:指定容器運行時的用戶名或 UID。
示例:docker run --user username image_name--volume-driver:指定容器使用的卷驅(qū)動程序。
示例:docker run --volume-driver my_driver image_name--shm-size:設置容器的共享內(nèi)存大小。
示例:docker run --shm-size 2g image_name--add-host:向容器的/etc/hosts文件添加自定義主機名和 IP 映射。
示例:docker run --add-host myhost:192.168.0.100 image_name--read-only:將容器的文件系統(tǒng)設置為只讀模式。
示例:docker run --read-only image_name25.–cpu-quota:設置容器的 CPU 配額,以微秒為單位。 示例:docker run --cpu-quota=50000 image_name`--cpu-period:設置容器的 CPU 周期,以微秒為單位。
示例:docker run --cpu-period=100000 image_name--dns-option:為容器的 DNS 配置添加自定義選項。
示例:docker run --dns-option=timeout:5 image_name--sysctl:設置容器的內(nèi)核參數(shù)。
示例:docker run --sysctl net.ipv4.ip_forward=1 image_name--label:為容器添加標簽,用于識別和組織容器。
示例:docker run --label env=production image_name--workdir:設置容器的工作目錄。
示例:docker run --workdir /app image_name
2.Docker run 多種用法
知其然知其所以然
Docker run 命令是用于創(chuàng)建和運行容器的主要命令之一。它可以根據(jù)提供的參數(shù)配置容器的各種屬性。下面是 Docker run 命令的一些常見用法和示例,從入門到精通,幫助您更好地理解和使用該命令。
1. 基本用法
最簡單的 Docker run 命令形式如下:
docker run image_name
這將使用指定的鏡像創(chuàng)建一個新的容器,并在容器中運行默認的啟動命令。
2. 啟動交互式容器
使用 -it 參數(shù)可以啟動一個交互式容器,允許您與容器進行交互,類似于在終端中打開一個新的會話:
docker run -it image_name
這將在容器內(nèi)打開一個新的終端,并將您連接到容器的標準輸入(stdin)。
3. 映射端口
使用 -p 參數(shù)可以將容器的端口映射到主機上的一個端口,以便可以通過主機訪問容器中運行的服務:
docker run -p host_port:container_port image_name
例如,將容器的端口 8080 映射到主機的端口 80:
docker run -p 80:8080 image_name
這樣,您可以通過訪問 http://localhost 來訪問容器中的服務。
4. 掛載文件/目錄
使用 -v 參數(shù)可以將主機上的文件或目錄掛載到容器內(nèi)部,實現(xiàn)主機和容器之間的文件共享:
docker run -v host_path:container_path image_name
例如,將主機上的 /path/to/host/directory 目錄掛載到容器的 /path/to/container/directory 目錄:
docker run -v /path/to/host/directory:/path/to/container/directory image_name
這樣,容器內(nèi)部的操作將反映在主機上的相應目錄中,實現(xiàn)了數(shù)據(jù)的共享和持久化。
5. 設置環(huán)境變量
使用 -e 參數(shù)可以設置容器的環(huán)境變量:
docker run -e ENV_VARIABLE=value image_name
例如,設置一個名為 DATABASE_URL 的環(huán)境變量:
docker run -e DATABASE_URL=mysql://user:password@host:port/database image_name
這樣,在容器內(nèi)部可以通過讀取該環(huán)境變量來配置應用程序。
6. 指定容器名稱
使用 --name 參數(shù)可以為容器指定一個名稱:
docker run --name container_name image_name
例如:
docker run --name my_container image_name
這樣,您可以使用容器名稱來管理和操作容器,而不僅僅依賴于容器的 ID。
7. 后臺運行容器
使用 -d 參數(shù)可以將容器放置在后臺運行,作為守護進程:
docker run -d image_name
8. 重啟策略
使用 --restart 參數(shù)可以指定容器在退出時的重啟策略,常見的選項有 no、on-failure[:max-retries]、always、unless-stopped。
docker run --restart=always image_name
這將在容器退出時自動重新啟動容器,確保容器的持續(xù)可用性。
9. 其他參數(shù)
除了上面的常用的參數(shù),其實還有一些參數(shù)也是比較有用的
Docker run 還有許多其他參數(shù)可用于更高級的容器配置,如網(wǎng)絡設置、安全選項、資源限制等
--restart:指定容器在退出時的重啟策略,可選值為no、on-failure[:max-retries]、always、unless-stopped。
例如:docker run --restart=always image_name--link:將容器連接到另一個容器,在兩個容器之間建立網(wǎng)絡連接。
例如:docker run --link container_name:image_alias image_name--dns:指定容器使用的自定義 DNS 服務器。
例如: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 能力,用于控制容器的權限。
例如:docker run --cap-add=SYS_ADMIN image_name--privileged:給容器賦予特權,可以訪問主機的設備。
例如:docker run --privileged image_name--tmpfs:在容器內(nèi)創(chuàng)建臨時文件系統(tǒng),用于存儲臨時數(shù)據(jù)。
例如:docker run --tmpfs /tmp image_name--ulimit:設置容器的資源限制,如最大打開文件數(shù)、最大進程數(shù)等。
例如:docker run --ulimit nofile=1024:1024 image_name--security-opt:設置容器的安全選項,如 AppArmor 配置、Seccomp 配置等。
例如:docker run --security-opt seccomp:unconfined image_name--cpu-shares:設置容器的 CPU 份額,用于控制 CPU 資源的分配。
例如:docker run --cpu-shares 512 image_name--memory:設置容器可使用的內(nèi)存限制。
例如:docker run --memory 1g image_name
2. docker run 命令參數(shù)詳解
docker run命令是Docker中用于創(chuàng)建并運行容器的命令。它有許多參數(shù),用于控制容器的運行方式、網(wǎng)絡連接、環(huán)境變量等。下面是對一些常用參數(shù)的詳細解釋:
1. -d:以后臺模式(detached mode)運行容器,即在容器啟動后將其放入后臺運行。
`docker run -d image_name
2. -it:以交互模式(interactive mode)運行容器,即啟動一個新的終端會話并連接到正在運行的容器。
docker run -it image_name ``
3. --name:為容器指定一個名稱。
`docker run --name container_name image_name
4. -p:將容器的端口映射到主機的端口。
`docker run -p host_port:container_port image_name
這個參數(shù)允許你將容器內(nèi)部的端口映射到主機上,以便可以通過主機的端口訪問容器內(nèi)的服務。
5. -v:將主機的目錄或文件掛載到容器中。
`docker run -v host_path:container_path image_name
這個參數(shù)允許你將主機上的目錄或文件掛載到容器中,以便在容器中使用或共享數(shù)據(jù)。
6. --network:指定容器使用的網(wǎng)絡類型。
`docker run --network network_name image_name
這個參數(shù)允許你將容器連接到指定的網(wǎng)絡,以便容器可以與其他容器或主機進行通信。
7. --env:設置容器的環(huán)境變量。
`docker run --env key=value image_name
這個參數(shù)允許你在容器中設置環(huán)境變量,以便容器內(nèi)的應用程序可以使用這些變量。
8. --rm:容器退出時自動刪除容器。這在臨時容器中非常有用。
`docker run --rm image_name
9. --link:將容器連接到另一個容器。
`docker run --link container_name:image_alias image_name
這個參數(shù)允許你將一個容器連接到另一個容器,以便容器之間可以進行通信。
10. --privileged:以特權模式運行容器,具有訪問主機系統(tǒng)的權限。
`docker run --privileged image_name
這個參數(shù)允許容器訪問主機的設備,以便執(zhí)行特權操作。
11. --volume-driver:指定容器數(shù)據(jù)卷的驅(qū)動程序。
`docker run --volume-driver driver_name -v volume_name:image_name
這個參數(shù)允許你指定一個自定義的數(shù)據(jù)卷驅(qū)動程序,以便在容器中使用數(shù)據(jù)卷。
12. --ulimit:設置容器的資源限制。
`docker run --ulimit resource_name=value image_name
這個參數(shù)允許你設置容器的資源限制,如最大打開文件數(shù)、最大進程數(shù)等。
13. --detach-keys:指定分離容器的鍵盤序列。
`docker run --detach-keys="ctrl-]" image_name
這個參數(shù)允許你自定義分離容器的鍵盤序列,用于在交互模式下分離容器。
14. --env-file:從文件中讀取環(huán)境變量。
`docker run --env-file=file_path image_name
這個參數(shù)允許你從文件中讀取環(huán)境變量,并將其傳遞給容器。
15. --hostname:設置容器的主機名。
`docker run --hostname=custom_hostname image_name
這個參數(shù)允許你為容器設置一個自定義的主機名。
16. --dns:設置容器使用的 DNS 服務器。
`docker run --dns=dns_server_ip image_name
這個參數(shù)允許你為容器設置使用特定的 DNS 服務器進行域名解析。
17. --shm-size:設置容器的共享內(nèi)存大小。
`docker run --shm-size=2g image_name
這個參數(shù)允許你為容器設置共享內(nèi)存的大小,以便容器可以使用更多的內(nèi)存資源。
18. --link:連接到其他容器。
`docker run --link=container_name:image_alias image_name
這個參數(shù)允許你將一個容器連接到另一個容器,并為連接的容器指定一個別名。
19. --restart:設置容器的重啟策略。
`docker run --restart=always image_name
這個參數(shù)允許你設置容器在退出時的重啟策略,可以設置為 `no`、`on-failure` 或 `always`。
20. --cpu-shares:設置容器的 CPU 份額。
`docker run --cpu-shares=512 image_name
這個參數(shù)允許你為容器設置 CPU 的份額,用于控制容器在 CPU 資源競爭時的優(yōu)先級。
21. --memory:設置容器的內(nèi)存限制。
`docker run --memory=1g image_name
這個參數(shù)允許你為容器設置內(nèi)存的限制,以確保容器不會占用過多的內(nèi)存資源。
22. --cap-add 和 --cap-drop:添加或刪除容器的特權。
`docker run --cap-add=SYS_ADMIN image_name
這些參數(shù)允許你為容器添加或刪除特定的權限,用于控制容器的安全性。
23. --rm:容器退出時自動刪除容器。這在臨時容器中非常有用。
`docker run --rm image_name
24. --link:將容器連接到另一個容器。
`docker run --link container_name:image_alias image_name
這個參數(shù)允許你將一個容器連接到另一個容器,以便容器之間可以進行通信。
25. --privileged:以特權模式運行容器,具有訪問主機系統(tǒng)的權限。
`docker run --privileged image_name
這個參數(shù)允許容器訪問主機的設備,以便執(zhí)行特權操作。
26. --volume-driver:指定容器數(shù)據(jù)卷的驅(qū)動程序。
`docker run --volume-driver driver_name -v volume_name:image_name
這個參數(shù)允許你指定一個自定義的數(shù)據(jù)卷驅(qū)動程序,以便在容器中使用數(shù)據(jù)卷。
27. --ulimit:設置容器的資源限制。
`docker run --ulimit resource_name=value image_name
這個參數(shù)允許你設置容器的資源限制,如最大打開文件數(shù)、最大進程數(shù)等。

3.參考文檔
Docker run 命令參考: http://edu.jb51.net/docker/docker-command-manual-run.html 網(wǎng)站提供了一個簡明的 Docker run 命令參考,解釋了一些常用參數(shù)的含義和用法,并提供了示例。
Docker run 命令文檔: https://docs.docker.com/engine/reference/run/官方文檔中關于 Docker run 命令的詳細說明,包括所有參數(shù)的解釋和示例用法。
https://docker-curriculum.com/#docker-run這是一個國外的網(wǎng)站提供了一些具體的 Docker run 命令示例,涵蓋了各種常見的用例和配置。
總結
到此這篇關于docker中run命令30個常用參數(shù)詳解的文章就介紹到這了,更多相關docker run命令常用參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker查看鏡像的Dockerfile(docker history和docker inspec
這篇文章主要給大家介紹了關于Docker查看鏡像的Dockerfile的相關資料,文中主要運用的是docker history和docker inspect命令,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05
基于spring-boot和docker-java實現(xiàn)對docker容器的動態(tài)管理和監(jiān)控功能[附完整源碼下載]
Docker 是一個開源的應用容器引擎,和傳統(tǒng)的虛擬機技術相比,Docker 容器性能開銷極低,因此也廣受開發(fā)者喜愛。這篇文章主要介紹了基于spring-boot和docker-java實現(xiàn)對docker容器的動態(tài)管理和監(jiān)控 ,需要的朋友可以參考下2019-06-06
解決docker安裝jenkins容器內(nèi)無法訪問外網(wǎng)
這篇文章為大家主要介紹了docker安裝jenkins容器內(nèi)無法訪問外網(wǎng)的問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11

