docker 命令大全


1. 鏡像倉庫

1.1 docker search [OPTIONS] TERM // 搜索鏡像

選項 說明 示例
-f, --filter filter 根據條件篩選 --filter=is-automated=true // 只列出 automated build類型的鏡像
--filter=stars=10 // 列出收藏數不小於指定值的鏡像
--limit int 設置搜索結果的記錄數量  
--no-trunc 搜索結果完整顯示  

1.2 docker pull [OPTIONS] NAME[:TAG|@DIGEST] // 從鏡像參數中拉取指定鏡像

選項 說明 示例
-a 拉取所有tagged鏡像  
--disable-content-trust 忽略鏡像的校驗,默認為true  

1.3 docker push [OPTIONS] NAME[:TAG] // 上傳鏡像到倉庫(要先登錄倉庫)

選項 說明 示例
--disable-content-trust 忽略鏡像校驗

 docker login

 docker tag local-image:tagname sandea/spark:tagname

 docker push sandea/spark:tagname

1.4docker login -u 用戶名 -p 密碼 //登錄

1.5 docker logout // 登出

2. 容器操作

2.1 docker ps [OPTIONS] //列出容器

選項 說明 示例
-a 顯示所有容器,默認只顯示正在運行的  
-f 過濾 docker ps -f name=hello
-n 10 顯示最近創建的容器  
--no-trunc 顯示全部描述  
-q 只顯示簡略ID  
-s 顯示總的文件大小  

2.2docker inspect [OPTIONS] NAME|ID //獲取容器或鏡像的元數據

選項 說明 示例
-f filter 篩選  
-s 如果是一個容器的話返回其文件大小  
--type image/container 返回指定類型的JSON  

2.3 docker top CONTAINER // 查看指定容器中運行的進程

2.4 docker attach [OPTIONS] CONTAINER //進入正在運行的容器

選項 說明 示例
-detach-keys string    
--no-stdin    
--sig-proxy 默認為true --sig-proxy=false

2.5 docker events [OPTIONS] //從服務器獲取實時事件

選項 說明 示例
-f filter 過濾  
--since timestamp 顯示在指定時間之后發生的事件 docker events --since=1467302400
--until timestamp 顯示在指定時間之前所產生的事件  

2.6 docker logs [OPTIONS] CONTAINER //獲取容器的日志

選項 說明 示例
--details 顯示詳細日志  
-f 日志實時輸出  
--since timestamp    
--until timestamp    
--tail num 輸出最后多少行日志  
-t 顯示日志時間  

2.7 docker wait CONTAINER... //等待容器停止並輸出其退出代碼

2.8 docker export -o fileName.tar CONTAINER //將指定容器打包到tar文檔中,可以指定文件路徑

2.9 docker port CONTAINER [PORT] // 列出容器的端口映射(容器端口與主機端口對應關系)

3.容器rootfs命令

3.1 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] // 從一個容器創建一個新的鏡像

選項 說明 示例
-a 鏡像作者  
-c 使用Dockerfile指令創建鏡像  
-m 提交時的說明文字  
-p 在提交時,暫停容器  

3.2 docker cp // 容器與主機之間的文件復制

   
docker cp [options] CONTAINER:SRC_PATH TAR_PATH

從容器中復制到主機

docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt

docker cp [options] SRC_PATH CONTAINER:TAR_PATH

從主機復制到容器中

docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js

選項 說明 示例
-a 復制所有的gid/uid信息  
-L Always follow symbol link in SRC_PATH ??

3.3 docker difff CONTAINER // 查看容器中被修改過的文件或目錄
說明:C - Change, D - Delete, A - Add

4. 容器生命周期管理

4.1 docker start [options] container... //啟動一個或多個容器

選項 說明 示例
-a 啟動后進入容器  
--detach-keys string ``  
-i Attach container's STDIN  

4.2 docker stop [options] container... //停止一個或多個容器

選項 說明 示例
-t int 多少秒后停止容器  

4.3 docker restart [options] container... //重啟一個或多個容器

選項 說明 示例
-t int 多少秒后重啟容器  

4.4 docker kill [options] container... // 殺死一個或多個容器

選項 說明 示例
-s string 給容器發送一個信號,默認為KILL  

4.5 docker rm [options] container... //刪除一個或多個容器

選項 說明 示例
-f, -force 強制移除容器  
-l, -link 刪除指定的連接  
-v, -volumes 刪除容器及其掛載的卷  

4.6 docker pause container... // 暫停容器中所有的進程

4.7 docker unpause container... // 恢復容器中所有的進程

4.8 docker exec [options] container command [arg...] 在運行的容器中執行命令

選項 說明 示例
-d, --detach 分離模式, 在后台運行  
--detach-keys str ``  
-e, --env list 設置環境變量  
-i, --interactive 保持STDIN打開 與-t結合使用打開一個終端
-t, --tty 分配一個偽終端 與-i結合使用打開一個終端
--privileged Give extended privileges to the command  
-u, --user str 指定用戶名或用戶ID  
-w, --workdir str 在指定文件目錄下執行相應的命令 -w /home container ls
-c 執行docker容器命令 docker exec -it zeppelin bash -c 'echo $ZEPPELIN_HOME'

4.9 docker run [optoins] image [command] [arg...] // 運行一個新容器中執行一個命令

選項 說明 示例
--add-host list 添加自定義的host-ip映射(host:ip)  
-a,
--attach list
將容器的stdin,stdout,stderr【標准輸入,標准輸出,錯誤輸出】關聯到本地shell中,在執行docker run時,將所有輸入輸出指定到本地shell中,若執行時攜帶此參數,可以指定將stdin,stdout,stderr的某一個或某幾個關聯到本地shell  
--blkio-weight uint16 限制容器讀寫權重,當宿主機有1個以上容器時,可以設置容器的讀寫優先權,權重值在10~1000之間,0為關閉權重(默認)  
--blkio-weight-device list 設置針對指定設備的權重,權重值在10~1000之間,且優先級高於blkio.weight --blkio-weight-device "/dev/sda:100" ubuntu:latest
--cap-add list 增強linux能力,在docker容器內限制了大部分的linux能力,在之前,需要開啟這些功能需要結合--privileged開啟特權模式才能使用這些參數,考慮到安全性,可以通過該參數來開啟指定的linux功能【默認開啟的功能及全部定義詳見docker runc】,若參數為all則默認開啟所有linux能力  
--cap-drop list 移除linux能力  
--cgroup-parent str 配置容器的控制組,繼承該控制組的資源限制模式。  
--cidfile str 創建一個容器,並將該容器的id輸出到某一文件中,若該文件存在,則會返回一個錯誤  
--cpu-period int 與參數--cpu-quota配合使用,用於設定cpu從新分配資源的時間周期,時間周期結束后,會對cpu進行重新分配  
--cpu-quota int 與參數--cpu-period配合使用,用於設定該容器在資源分配周期內占用cpu的時間,若容器設定--cpu-quota=1000000 --cpu-period=500000,則該容器在這個時間周期內權重為50%,這兩個參數主要是提升宿主機內某一容器的權重比,可以用來解決宿主機內若干容器的資源搶占導致重要容器cpu性能不足的場景。該模式應用於Linux 的CFS模式  
--cpu-rt-period int --cpu-period的微秒版  
--cpu-rt-runtime int 在一個cpu資源分配周期內,優先保證某容器的cpu使用的最大微秒數。例如,默認周期為 1000000 微秒(1秒),設置 --cpu-rt-runtime=950000 可確保使用實時調度程序的容器每 1000000 微秒可運行 950000 微秒,並保留至少 50000 微秒用於非實時任務  
-c, --cpu-shares int CPU份額(相對權重),默認為0  
--cpus decimal 設置容器使用cpu的數量 --cpus=".5" ubuntu:latest
--cpuset-cpus str 設置容器允許在哪個cpu上執行該進程,譬如--cpuset-cpus="1,3"為指定在cpu 1 和cpu 3上執行,--cpuset-cpus="0-2"為指定在cpu0,cpu1,cpu2上執行 --cpuset-cpus="1,3"
--cpuset-mems str 同參數--cpuset-cpus,但該參數是作用於NUMA 架構的 CPU  
-d, --detach 后台運行容器並返回容器ID  
--detach-keys str 設置容器的鍵盤映射鍵位,在容器被鏈接到前台時,若宿主機的鍵盤鍵位與容器鍵位沖突,可以使用該指令對容器的鍵位進行重新映射  
--device list 向容器中添加主機設備  
--device-cgroup-rule list 將宿主機的設備添加到cgroup規則列表中  
--device-read-bps list 限制設備的讀取速率(每秒字節數)  
--device-read-iops list 限制設備的讀取速率(每秒IO操作次數)  
--device-write-bps list 限制設備的寫速率(每秒字節數)  
--device-write-iops list 限制設備的寫速率(每秒IO操作次數)  
--disable-content-trust 忽略鏡像的校驗(默認為true)  
--dns list 指定容器使用的DNS服務器,默認與主機一致  
--dns-option list 設置DNS選項,同修改/etc/resolv.conf文件  
--dns-search list 指定容器DNS搜索域名,默認與主機一致  
-entrypoint str 覆蓋映像默認的entrypoint  
-e, --env list 給容器設置環境變量  
--env-file list 從指定文件讀取環境變量  
--expose list 開放一個或多個端口  
--group-add list 為容器添加用戶組  
--health-cmd str 執行一個健康檢查命令  
--health-interval duration 配合--health-cmd參數,設置健康檢查的執行的間隔時間(ms /s / m / h)  
--health-retries int 配合--health-cmd參數,設置健康檢查命令失敗重試的次數  
--health-statr-period duration 配合--health-cmd參數,設置健康檢查的啟動時間(ms /s / m / h)  
--health-timout 配合--health-cmd參數,設置健康檢查命令超時時間(ms /s / m / h)
-h, --hostname str 指定容器的hostname  
--init 在容器中新增一個守護進程,來預防該容器出現僵屍進程的可能性  
-i, --interactive 以交互模式運行容器,常與-t同時使用  
--ip str 設置容器的IPv4地址  
--ip6 str 設置容器的IPv6地址  
--ipc str 使用IPC模式  
--isolation str 使用容器隔離, 該參數擁有三個值<br>(1)default 即與使用dockerd --exec-opt的參數默認效果相同<br>(2)process 使用linux內核命名空間進行隔離,該參數不支持windows環境。<br>(3)使用微軟的Hyper-V虛擬技術進行隔離,該參數僅限windows環境  
--kernel-memory bytes 限制該容器內核的內存使用  
-l, --label list 設置該容器的元數據  
--label-file list 通過本地文件導入元數據至該容器  
--link list 指定容器間的關聯,使用其他容器的IP、env等信息  
--link-local-ip list 容器IPv4/IPv6鏈路本地地址  
--log-driver str 設置日志工具,用於動態收集日志  
--log-opt list 配合參數--log-driver使用,用於日志配置  
--mac-address str 設置該容器mac地址  
-m, --memory bytes 設置容器使用的最大內存  
--memory-reservation bytes 軟限制該容器的內存使用,當宿主機內存空閑時,該容器的內存使用可以一定比例超出限制,但當宿主機內存緊張時,會強制該容器內存使用限制在該參數之內  
--memory-swap bytes 內存交換分區大小限制。配合參數--memory使用,且最小內存交換限制應該大於內存限制。該參數有4種情況:<br> (1)不設置--memory與該參數:則該容器默認可以用完宿舍機的所有內存和 宿主機 swap 分區。<br> (2)設置--memory 50MB 不設置--memory-swap(默認為0):則--memory-swap值等於限制內存大小,即該容器能夠申請的最大內存為100MB。<br> (3)設置--memory 50MB --memory-swap為-1:則該容器最大可以申請的內存為50MB+宿主機swap分區大小 <br> (4)設置--memory 50MB --memory-swap 100MB:則該容器可以申請的最大內存為100MB-50MB=50MB  
--memory-swappiness int 用於調整虛擬內存的控制行為,為0~100之間的整數。在linux內存管理中,將內存中不活躍的頁交換至硬盤中,以緩解內存緊張,該參數設置為0則認定該容器所有內存中的內容均不允許交換至硬盤,用以保障最大性能,若設置為100,則認為該容器所有內存中的數據均可以交換至硬盤。  
--mount mount 將文件系統掛載到容器  
--name str 為容器指定一個名稱  
--network str 將容器連接到網絡,支持bridge/host/none/container四種類型  
--network-alias list 設置該容器在網絡上的別名  
--no-healthcheck 禁止一切健康檢查行為  
--oom-kill-disable 設置是否禁止oom kill行為,若該容器因為需要大量請求內存,導致宿主機內存不足或觸發到內存限制,導致殺死該容器進程,若設置該參數為true則會關閉這個檢查  
--oom-score-adj int 調整主機的OOM首選項(從-1000到1000)此處需要注意的是,非專業人士docker官方是不建議用戶修改--oom-score-adj--oom-kill-disable這兩個參數的  
--pid string 設置該容器的pid  
--pids-limit int 限制該容器所能創建的最大進程數。默認-1不限制  
--privileged 在該容器上開啟特權模式,讓該容器擁有所有的linux能力  
-p, --publish list 將容器的端口映射到宿主機上 docker run -p 8000:8000 ubuntu
--publish-all 將該容器的所有端口均隨機映射至宿主機  
--read-only 設置該容器只讀  
--restart str 在退出該容器時重啟該容器,默認為no  
--rm 當容器退出時自動刪除它  
--runtime str 指定該容器關聯一個runtime的容器,在使用該參數時注意runtime specified必須在dockerd --add-runtime注冊過  
--security-opt list 設置安全屬性,在windows上使用CredentialSpec模塊來執行身份識別  
--shm-size bytes 設置/dev/shm/目錄的大小  
--sig-proxy 代理進程所接收的所有字符,當指定--sig-proxy=false時,ctrl+c和ctrl+d 不會傳遞信號給docker進程而關閉容器,默認為true  
--stop-signal str 停止帶有信號的容器,在linux環境下輸入kill -l,就可以看到所有信號名稱,可以指定容器發出某種信號時停止該容器,譬如SIGKILL,默認為SIGTERM  
--stop-timeout int 設置容器調用命令超時后自動退出。該參數可以設置容器在調用命令時導致超時后多少秒退出,0(默認)為永遠不退出,該參數單位為秒  
--storage-opt list 容器的存儲設置,可以分別指定dm.basesize、dm.loopdatasize、dm.loopmetadatasize等項 --storage-opt dm.basesize=20G
--sysctl map 內核參數,對應修改容器中的/etc/sysctl.conf文件  
--tmpfs list 指定掛載一個tmpfs目錄,tmpfs是一種虛擬內存文件系統。  
-t, -tty 打開一個偽終端,常與-i同時使用  
--ulimit ulimit 設置容器的ulimit選項  
-u, --user str 用戶名或UID  
--userns str ``  
--uts str 使用uts命名空間  
-v, --volume list 在該容器下掛載卷  
--volume-driver str ``  
--volumes-from list ``  
-w, --workdir str 指定容器的工作目錄  

4.10 docker create [optoins] image [command] [arg...] // 創建一個新容器
參數 同run

5. 鏡像管理

5.1 docker images [options] [repository[:tag]] //列出鏡像

選項 說明 示例
-a <br>--all 列出所有鏡像  
--digests 顯示摘要信息(sha256)  
-f <br> --filter filter 過濾  
--format str ``  
--no-trunc ``  
-q <br>--quiet 僅顯示ID  

5.2 docker rmi [options] image...//刪除鏡像

選項 說明 示例
-f <br> --force 強制刪除  
--no-prune ``  

5.4 docker tag src_image[:tag] tar_image[:tag] // 創建某個鏡像的副本

5.5 docker history [options] image //查看指定鏡像的創建歷史。

選項 說明 示例
--format str ``  
-H <br> --human 以可讀的形式打印日志和大小  
--no-trunc ``  
-q <br>--quiet ``  

5.6 docker save [options] image... //將指定鏡像保存為tar歸檔文件

選項 說明 示例
-o <br> --output str 輸出至指定的文件  

5.6 docker import [options] file/url/- [repository[:tag]] //由tar文檔生成鏡像

選項 說明 示例
-c ,<br> --change list 用dockerfile指令創建鏡像  
-m, <br> --message str 為創建的鏡像設置描述信息  

5.7 docker build [options] path / url / - //使用dockerfile創建鏡像

選項 說明 示例
--add-host list ``  
--build-arg list 設置鏡像創建時的變量  
--cache-from str ``  
--cgroup-parent str ``  
--compress 使用zip壓縮構建上下文  
--cpu-period int 限制 CPU CFS周期  
--cpu-quota int 限制 CPU CFS配額  
-c <br> --cpu-shars int 設置 cpu 使用權重  
--cpuset-cpus str 指定使用的CPU id  
--cpuset-mems str 指定使用的內存 id  
--disable-content-trust 忽略校驗,默認開啟  
-f <br> --file str 指定要使用的Dockerfile路徑  
--force-rm 設置鏡像過程中刪除中間容器  
--iidfile str 指定保存鏡像id的文件  
--isolation str 使用容器隔離技術  
--label list 設置鏡像使用的元數據  
-m <br> --memory bytes 設置內存最大值  
--memory-swap bytes 設置Swap的最大值為內存+swap,"-1"表示不限swap  
--network str 設置鏡像網絡模式  
--no-cache 創建鏡像的過程不使用緩存  
--pull 嘗試去更新鏡像的新版本  
-q, <br> --quiet 只輸出鏡像ID  
--rm 設置鏡像成功后刪除中間容器  
--security-opt str 安全設置  
--shm-size bytes 設置/dev/shm的大小,默認值是64M  
-t, <br> --tag list ``  
--target str ``  
--ulimit ulimit Ulimit配置  
6. 其他命令

6.1 docker info //顯示docker系統信息

6.2 docker version // 顯示docker相關的版本信息


免責聲明!

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



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