Docker 常用命令

来源:https://www.cnblogs.com/lenovo_tiger_love/archive/2019/02/13/10371298.html
-Advertisement-
Play Games

Docker 常用命令 login/logout docker login [OPTIONS] [SERVER] 登錄到Docker鏡像倉庫,預設為Docker Hub。 docker logout [OPTIONS] [SERVER] 退出Docker鏡像倉庫。 OPTIONS 說明 u:登錄用戶 ...


Docker 常用命令

login/logout

  • docker login [OPTIONS] [SERVER] 登錄到Docker鏡像倉庫,預設為Docker Hub。
  • docker logout [OPTIONS] [SERVER] 退出Docker鏡像倉庫。
OPTIONS 說明
  • -u:登錄用戶名
  • -p:登錄密碼
示例
  • docker login -u 用戶名 -p 密碼 登錄到Docker Hub。
  • docker logout 退出Docker Hub。

pull

  • docker pull 從鏡像倉庫中拉取或者更新指定鏡像

    語法
  • docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    OPTIONS 說明
  • -a:拉取所有 tagged 鏡像
  • --disable-content-trust:忽略鏡像的校驗,預設開啟

    示例
  • docker pull java

push

  • docker push 將本地鏡像上傳至鏡像倉庫,需要先登錄。

    語法
  • docker push [OPTIONS] NAME[:TAG]

    OPTIONS 說明
  • --disable-content-trust:忽略鏡像的校驗,預設開啟

    示例
  • docker push myapache:v1

  • docker search 從鏡像倉庫查找鏡像

    語法
  • docker search [OPTIONS] TERM

    OPTIONS 說明
  • --automated :只列出 automated build類型的鏡像;
  • --no-trunc :顯示完整的鏡像描述;
  • -s :列出收藏數不小於指定值的鏡像。

    示例
  • docker search -s 10 java

images

  • docker images 列出本地鏡像。

    語法
  • docker images [OPTIONS] [REPOSITORY[:TAG]]

    OPTIONS 說明
  • -a :列出本地所有的鏡像(含中間映像層,預設情況下,過濾掉中間映像層);
  • --digests :顯示鏡像的摘要信息;
  • -f :顯示滿足條件的鏡像;
  • --format :指定返回值的模板文件;
  • --no-trunc :顯示完整的鏡像信息;
  • -q :只顯示鏡像ID;

    示例
  • docker images centos

rmi

  • docker rmi 刪除本地一個或多個鏡像

    語法
  • docker rmi [OPTIONS] IMAGE [IMAGE...]

    OPTIONS 說明
  • -f :強制刪除;
  • --no-prune :不移除該鏡像的過程鏡像,預設移除;

    示例
  • docker rmi -f java/jre1.8.0:201

tag

  • docker tag 標記本地鏡像

    語法
  • docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

    示例
  • docker tag ubuntu:15.10 runoob/ubuntu:v3

build

  • docker build 使用Dockerfile構建鏡像。

    語法
  • docker build [OPTIONS] PATH | URL | -

    OPTIONS 說明
  • --build-arg=[] :設置鏡像創建時的變數;
  • --cpu-shares :設置 cpu 使用權重;
  • --cpu-period :限制 CPU CFS周期;
  • --cpu-quota :限制 CPU CFS配額;
  • --cpuset-cpus :指定使用的CPU id;
  • --cpuset-mems :指定使用的記憶體 id;
  • --disable-content-trust :忽略校驗,預設開啟;
  • -f :指定要使用的Dockerfile路徑;
  • --force-rm :設置鏡像過程中刪除中間容器;
  • --isolation :使用容器隔離技術;
  • --label=[] :設置鏡像使用的元數據;
  • -m :設置記憶體最大值;
  • --memory-swap :設置Swap的最大值為記憶體+swap,"-1"表示不限swap;
  • --no-cache :創建鏡像的過程不使用緩存;
  • --pull :嘗試去更新鏡像的新版本;
  • --quiet, -q :安靜模式,成功後只輸出鏡像 ID;
  • --rm :設置鏡像成功後刪除中間容器;
  • --shm-size :設置/dev/shm的大小,預設值是64M;
  • --ulimit :Ulimit配置。
  • --tag, -t: 鏡像的名字及標簽,通常 name:tag 或者 name 格式;可以在一次構建中為一個鏡像設置多個標簽。
  • --network: 預設 default。在構建期間設置RUN指令的網路模式

    示例
  • docker build -t runoob/ubuntu:v1 .

history

  • docker history:查看指定鏡像的創建歷史。

    OPTIONS 說明
  • -H :以可讀的格式列印鏡像大小和日期,預設為true;
  • --no-trunc :顯示完整的提交記錄;
  • -q :僅列出提交記錄ID。

    示例
  • docker history java/jre1.8.0:201

save/load

  • docker save 將指定鏡像保存成 tar 歸檔文件
  • docker load 恢復指定tar文件至docker列表

    語法
  • docker save [OPTIONS] IMAGE [IMAGE...]

    OPTIONS 說明
  • -o :輸出到的文件。

    示例
  • docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3

export/import

  • docker export 打包容器
  • docker import 導入鏡像

    語法
  • docker export [OPTIONS] CONTAINER

    OPTIONS 說明
  • -o :輸出到的文件。

    示例
  • docker export container_id > /home/alic/ubuntu-purge.tar.gz
  • sudo docker import - test/ubuntu:v1.0

run

  • docker run 創建新容器並啟動

    語法
  • docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    OPTIONS 說明
  • -a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;
  • -d: 後臺運行容器,並返回容器ID;
  • -i: 以交互模式運行容器,通常與 -t 同時使用;
  • -p: 埠映射,格式為:主機埠:容器埠
  • -t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
  • --name="nginx-lb": 為容器指定一個名稱;
  • --dns 8.8.8.8: 指定容器使用的DNS伺服器,預設和宿主一致;
  • --dns-search example.com: 指定容器DNS搜索功能變數名稱,預設和宿主一致;
  • -h "mars": 指定容器的hostname;
  • -e username="ritchie": 設置環境變數;
  • --env-file=[]: 從指定文件讀入環境變數;
  • --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;
  • -m :設置容器使用記憶體最大值;
  • --net="bridge": 指定容器的網路連接類型,支持 bridge/host/none/container: 四種類型;
  • --link=[]: 添加鏈接到另一個容器;
  • --expose=[]: 開放一個埠或一組埠;

    示例
  • docker run --name mynginx -d nginx:latest /bin/bash

start/stop/restart

  • docker start 啟動一個或多個已經被停止的容器
  • docker stop 停止一個運行中的容器
  • docker restart 重啟容器

    語法
  • docker start [OPTIONS] CONTAINER [CONTAINER...]
  • docker stop [OPTIONS] CONTAINER [CONTAINER...]
  • docker restart [OPTIONS] CONTAINER [CONTAINER...]

    示例
  • docker start mynginx
  • docker stop mynginx
  • docker restart mynginx

create

  • docker create 創建容器但不啟動

    語法
  • docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

    示例
  • docker create --name myrunoob nginx:latest

exec

  • docker exec 在運行的容器中執行命令

    語法
  • docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

    OPTIONS 說明
  • -d :分離模式: 在後臺運行
  • -i :即使沒有附加也保持STDIN 打開
  • -t :分配一個偽終端

    示例
  • docker exec -i -t mynginx /bin/bash

commit

  • docker commit 從容器創建新鏡像。

    語法
  • docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

    OPTIONS 說明
  • -a :提交的鏡像作者;
  • -c :使用Dockerfile指令來創建鏡像;
  • -m :提交時的說明文字;
  • -p :在commit時,將容器暫停。

    示例
  • docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1

cp

  • docker cp 用於容器與主機之間的數據拷貝

    語法
  • docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
  • docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

    OPTIONS 說明
  • -L:保持源目標中的鏈接

    示例
  • docker cp /www/runoob 96f7f14e99ab:/www/ 將主機/www/runoob目錄拷貝到容器96f7f14e99ab的/www目錄下

diff

  • docker diff 檢查容器文件結構的修改

    語法
  • docker diff [OPTIONS] CONTAINER

    示例
  • docker diff mymysql

kill

  • docker kill 殺掉運行中的容器

    語法
  • docker kill [OPTIONS] CONTAINER [CONTAINER...]

    OPTIONS 說明
  • -s :向容器發送一個信號

    示例
  • docker kill -s KILL mynginx

pause/unpause

  • docker pause 暫停容器中所有的進程。
  • docker unpause 恢復容器中所有的進程。

    語法
  • docker pause [OPTIONS] CONTAINER [CONTAINER...]
  • docker unpause [OPTIONS] CONTAINER [CONTAINER...]

    示例
  • docker pause db01
  • docker unpause db01

ps

  • docker ps 列出容器

    語法
  • docker ps [OPTIONS]

    OPTIONS 說明
  • -a :顯示所有的容器,包括未運行的。
  • -f :根據條件過濾顯示的內容。
  • --format :指定返回值的模板文件。
  • -l :顯示最近創建的容器。
  • -n :列出最近創建的n個容器。
  • --no-trunc :不截斷輸出。
  • -q :靜默模式,只顯示容器編號。
  • -s :顯示總的文件大小。

    示例
  • docker ps -n 5 列出最近創建的5個容器信息

top

  • docker top 查看容器中運行的進程信息,支持 ps 命令參數

    語法
  • docker top [OPTIONS] CONTAINER [ps OPTIONS]

    示例
  • docker top mymysql

attach

  • docker attach 連接正在運行的容器

    語法
  • docker attach [OPTIONS] CONTAINER

    示例

    docker attach --sig-proxy=false mynginx

    說明

    要attach上去的容器必須正在運行,可以同時連接上同一個container來共用屏幕(與screen命令的attach類似)。
    官方文檔中說attach後可以通過CTRL-C來detach,但實際上經過我的測試,如果container當前在運行bash,CTRL-C自然是當前行的輸入,沒有退出;如果container當前正在前臺運行進程,如輸出nginx的access.log日誌,CTRL-C不僅會導致退出容器,而且還stop了。這不是我們想要的,detach的意思按理應該是脫離容器終端,但容器依然運行。好在attach是可以帶上--sig-proxy=false來確保CTRL-D或CTRL-C不會關閉容器。

inspect

  • docker inspect 獲取容器/鏡像的元數據

    語法
  • docker inspect [OPTIONS] NAME|ID [NAME|ID...]

    OPTIONS 說明
  • -f :指定返回值的模板文件。
  • -s :顯示總的文件大小。
  • --type :為指定類型返回JSON。

    示例
  • docker inspect mysql:5.6

events

  • docker events 從伺服器獲取實時事件

    語法
  • docker events [OPTIONS]

    OPTIONS 說明
  • -f :根據條件過濾事件;
  • --since :從指定的時間戳後顯示所有事件;
  • --until :流水時間顯示到指定的時間為止;

    示例
  • docker events --since="1467302400" 顯示docker 2016年7月1日後的所有事件

logs

  • docker logs 獲取容器的日誌

    語法
  • docker logs [OPTIONS] CONTAINER

    OPTIONS 說明
  • -f : 跟蹤日誌輸出
  • --since :顯示某個開始時間的所有日誌
  • -t : 顯示時間戳
  • --tail :僅列出最新N條容器日誌

    示例
  • docker logs -f mynginx 跟蹤查看容器mynginx的日誌輸出

wait

  • docker wait 阻塞運行直到容器停止,然後列印出它的退出代碼

    語法
  • docker wait [OPTIONS] CONTAINER [CONTAINER...]

    示例
  • docker wait CONTAINER

port

  • docker port 列出指定的容器的埠映射,或者查找將PRIVATE_PORT NAT到面向公眾的埠

    語法
  • docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]

    示例
  • docker port mymysql

info

  • docker info 顯示Docker系統信息,包含鏡像和容器數等。
Containers: 3
Running: 0
Paused: 0
Stopped: 3
Images: 23
Server Version: 18.09.0
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
...

version

  • docker version 顯示Docker版本信息。
Client:
 Version:           18.09.0
 API version:       1.39
 Go version:        go1.10.4
 Git commit:        4d60db4
 Built:             Wed Nov  7 00:48:22 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.0
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       4d60db4
  Built:            Wed Nov  7 00:19:08 2018
  OS/Arch:          linux/amd64
  Experimental:     false

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • C/S結構瞭解 所謂的C/S就是客戶端(client)和伺服器端(server)的簡稱,也就是在基於這個的基礎上編寫相關的代碼;一個就是客戶端一個就是服務端。 TCP(client) 客戶端編寫 因為是在Python2.7的版本所以使用該socket包 import socket 定義地址和埠 t ...
  • 本文講解了 Python 的 property 特性,即一種符合 Python 哲學地設置 getter 和 setter 的方式。 ...
  • 一 Servlet的API的訪問 1 完全解耦和的方式 完全看不到request、response、session。 (1)創建jsp界面 (2)編寫action (3)struts_xml 運行效果圖 調用put方法相當於往request域中存數據註意:這種方式只能獲得像 request sess ...
  • asyncio之Coroutines,Tasks and Future Coroutines and Tasks屬於High-level APIs,也就是高級層的api。 本節概述用於協程和任務的高級非同步api。 Coroutines Coroutines翻譯過來意思是協程,使用async/awai ...
  • 1. eureka相關異常 1.1. 異常信息 1.2. 解決 1. 上述異常我在兩處地方遇到過,一是在集成txLCN分散式服務時,用到eureka註冊的時候,需要額外添加兩個配置類 否則也會報上述錯誤 2. 二是再junit的Test類中,用@SpringBootTest創建測試的時候,若是報上述 ...
  • 前邊我們提到了客戶端加域的操作方法,本章為大家補充域客戶端退域的操作過程,包含圖形化、netdom remove、Powershell三種方法,具體內容如下:圖形化退域方法:1.Win鍵,電腦右鍵屬性:2.系統界面在電腦名稱、域和工作組設置欄選擇"更改設置":3.在系統屬性界面,選擇"更改":4... ...
  • 解決windows憑據無法保存的問題1: 運行-gpedit.msc(組策略)-電腦配置-管理模板-系統-憑據分配 雙擊右側”允許分配保存的憑據用於僅NTLM伺服器身份驗證“ 在彈出的視窗中選中“已啟用“,單擊”顯示“,輸入鍵值”TERMSER/*“ 保存退出後,運行”gpupdate /forc ...
  • 目錄 1. 公鑰私鑰簡介 2. 使用密鑰進行ssh免密登錄 2.1. 實驗環境 2.2. 開始實驗 3. ssh的兩種登陸方式介紹 3.1. 口令驗證登錄 3.2. 密鑰驗證登錄 4. 總結 1、公私鑰簡介與原理 公鑰和私鑰都屬於非對稱加密演算法的一個實現,這個加密演算法的信息交換過程是: 1) 持有公 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...