docker run 命令詳解


Docker run命令用於運行一個新容器,而啟動一個容器需要非常多的信息,所以該命令的參數非常多,今天就詳細分析下該命令支持的參數。

首先看一下該命令的格式:

 1     Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
 2       -a, --attach=[]            登錄容器(以docker run -d啟動的容器)
 3       -c, --cpu-shares=0         設置容器CPU權重,在CPU共享場景使用
 4       --cap-add=[]               添加權限,權限清單詳見:http://linux.die.net/man/7/capabilities
 5       --cap-drop=[]              刪除權限,權限清單詳見:http://linux.die.net/man/7/capabilities
 6       --cidfile=""               運行容器后,在指定文件中寫入容器PID值,一種典型的監控系統用法
 7       --cpuset=""                設置容器可以使用哪些CPU,此參數可以用來容器獨占CPU
 8       -d, --detach=false         指定容器運行於前台還是后台 
 9       --device=[]                添加主機設備給容器,相當於設備直通
10       --dns=[]                   指定容器的dns服務器
11       --dns-search=[]            指定容器的dns搜索域名,寫入到容器的/etc/resolv.conf文件
12       -e, --env=[]               指定環境變量,容器中可以使用該環境變量
13       --entrypoint=""            覆蓋image的入口點
14       --env-file=[]              指定環境變量文件,文件格式為每行一個環境變量
15       --expose=[]                指定容器暴露的端口,即修改鏡像的暴露端口
16       -h, --hostname=""          指定容器的主機名
17       -i, --interactive=false    打開STDIN,用於控制台交互
18       --link=[]                  指定容器間的關聯,使用其他容器的IP、env等信息
19       --lxc-conf=[]              指定容器的配置文件,只有在指定--exec-driver=lxc時使用
20       -m, --memory=""            指定容器的內存上限
21       --name=""                  指定容器名字,后續可以通過名字進行容器管理,links特性需要使用名字
22       --net="bridge"             容器網絡設置,待詳述
23       -P, --publish-all=false    指定容器暴露的端口,待詳述
24       -p, --publish=[]           指定容器暴露的端口,待詳述
25       --privileged=false         指定容器是否為特權容器,特權容器擁有所有的capabilities
26       --restart=""               指定容器停止后的重啟策略,待詳述
27       --rm=false                 指定容器停止后自動刪除容器(不支持以docker run -d啟動的容器)
28       --sig-proxy=true           設置由代理接受並處理信號,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
29       -t, --tty=false            分配tty設備,該可以支持終端登錄
30       -u, --user=""              指定容器的用戶
31       -v, --volume=[]            給容器掛載存儲卷,掛載到容器的某個目錄
32       --volumes-from=[]          給容器掛載其他容器上的卷,掛載到容器的某個目錄
33       -w, --workdir=""           指定容器的工作目錄

故障處理
--restart參數,支持三種邏輯實現:

1 no:容器退出時不重啟
2 on-failure:容器故障退出(返回值非零)時重啟
3 always:容器退出時總是重啟

端口暴露

-P參數:docker自動映射暴露端口:

docker run -d -P training/webapp //docker自動在host上打開49000到49900的端口,映射到容器(由鏡像指定,或者--expose參數指定)的暴露端口;

-p參數:指定端口或IP進行映射:

1 docker run -d -p 5000:80 training/webapp //host上5000號端口,映射到容器暴露的80端口;
2 docker run -d -p 127.0.0.1:5000:80 training/webapp //host上127.0.0.1:5000號端口,映射到容器暴露的80端口;
3 docker run -d -p 127.0.0.1::5000 training/webapp //host上127.0.0.1:隨機端口,映射到容器暴露的80端口;
4 docker run -d -p 127.0.0.1:5000:5000/udp training/webapp //綁定udp端口;

網絡配置

1 --net=bridge: //使用docker daemon指定的網橋
2 --net=host: //容器使用主機的網絡
3 --net=container:NAME_or_ID://使用其他容器的網路,共享IP和PORT等網絡資源
4 --net=none: //容器使用自己的網絡(類似--net=bridge),但是不進行配置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM