Docker命令大整理,附示例!

2021-12-23 網絡技術乾貨圈

沒有示例的命令,將 container_name/image_name進行對應替換.

docker中有REPOSITORY, TAG, IMAGE,CONTAINER的概念

docker命令中的鏡像名,容器名 支持使用Tab鍵進行聯想

1 Docker容器

docker中默認的命令是對容器進行操作 ,現在看到容器相關的命令是默認沒有container的。簡單舉例:docker run是docker container run的簡寫。

1.1 docker run 運行一個新的容器
# 參數說明
## 常用參數
-d         # 後臺運行容器,並返回容器ID
-p         # 指定埠映射,格式為:主機(宿主)埠:容器埠
--name     # 為容器指定一個名稱;
-v         # 綁定一個卷,映射本地實際路徑  --volume 

-a stdin   # 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項
--cpuset="0-2" 或 --cpuset="0,1,2"   # 綁定容器到指定CPU運行
--dns 8.8.8.8          #指定容器使用的DNS伺服器,默認和宿主一致
--dns-search example.com  # 指定容器DNS搜索域名,默認和宿主一致
-e username="ritchie"  # 設置環境變量
--env-file=[]          # 從指定文件讀入環境變量
--expose=[]            # 開放一個埠或一組埠
-h "mars"              # 指定容器的hostname
-i                     # 以交互模式運行容器,通常與 -t 同時使用
--link=[]              # 添加連結到另一個容器
-m                     # 設置容器使用內存最大值
--net="bridge"         # 指定容器的網絡連接類型,支持 bridge/host/none/container: 四種類型
-P                     # 隨機埠映射,容器內部埠隨機映射到主機的埠  # 大寫P
--rm                   # 容器退出後自動清理本容器,用於創建臨時容器
-t                     # 為容器重新分配一個偽輸入終端,通常與 -i 同時使用

# 示例
# 使用鏡像nginx:latest以後臺模式啟動一個名為mynginx的容器,其中將容器外8080埠映射到容器內,主機目錄 /data 映射到容器內/data
docker run --name mynginx -d -p 8080:80 -v /data:/data nginx:latest  
docker run -it nginx:latest /bin/bash  # 以交互式命令啟動一個容器

1.2 docker create 創建容器但不啟動

參數命令同docker run

1.3 啟動/停止/重啟/殺掉容器
docker start container_name     # 啟動一個停止狀態的容器
docker stop contaniner_name     # 停止
docker restart container_name   # 重啟
docker kill container_name
docker kill -s container_name   # -s 向即將殺掉的容器內發送一個信號

1.4 刪除容器
docker rm container_name

1.5 進入容器

通過容器名或者容器ID進入指定的容器。

docker exec -it container_name
docker exec -it container_id

# 參數說明
-i    # 即使沒有附加也保持STDIN 打開
-t    # 分配一個偽終端
-d    # 採用在後臺運行的分離模式, 我自己用的比較少

# 以交互的模式執行容器內為/home/start_nginx.sh的腳本
docker exec -it mynginx /bin/sh /home/start_nginx.sh

1.6 查看容器運行狀態
docker ps     # 列出容器
docker ps -a  # 列出所有容器(含未運行容器)

# 參數說明
-f            # 根據條件過濾顯示的內容
--format      # 指定返回值的模板文件
-l            # 顯示最近創建的容器
-n            # 列出最近創建的n個容器
--no-trunc    # 不截斷輸出
-q            # 靜默模式,只顯示容器編號
-s            # 顯示總的文件大小

# 說明
docker ps命令執行後,顯示的COMMAND列顯示的是 啟動容器時運行的命令

2 鏡像2.1 本地鏡像管理 2.1.1 加載本地鏡像
docker load < ***.tar        # 導入本地的docker鏡像
docker load -i ***.tar
docker load --input ***.tar

2.1.2 保存鏡像
docker save -o out_image.tar test/ubuntu:v3
docker save test/ubuntu:v3 > out_image.tar

# 更多說明
 docker save 保存的是鏡像(image),docker export 保存的是容器(container);
 docker load 用來載入鏡像包,docker import 用來載入容器包,但兩者都會恢復為鏡像;
 docker load 不能對載入的鏡像重命名,而 docker import 可以為鏡像指定新名稱。

2.1.3 查看本地鏡像
docker images       # 列出本地鏡像
docker images test  # 列出本地鏡像中倉庫repository為test的鏡像

# 參數說明
-a                  # 列出本地所有的鏡像
--digests           # 顯示鏡像的摘要信息
-f                  # 顯示滿足條件的鏡像
--format            # 指定返回值的模板文件
--no-trunc          # 顯示完整的鏡像信息
-q                  # 只顯示鏡像ID

2.1.4 刪除本地鏡像
docker image rm image_name             # 刪除本地鏡像
docker image rm -f image_name          # 強制刪除本地鏡像
docker rmi image_name1 image_name2     # 刪除多個本地鏡像
docker rmi -f image_name1 image_name2  # 強制刪除多個本地鏡像

# docker pure命令
docker image pure       # 刪除所有未被 tag 標記和未被容器使用的鏡像
docker image prune -a   # 刪除所有未被容器使用的鏡像
docker container prune  # 刪除所有停止運行的容器

2.1.5 創建鏡像
docker build [OPTIONS] PATH | URL | -

# 參數說明
--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配置
--squash          # 將 Dockerfile 中所有的操作壓縮為一層
--tag, -t         # 鏡像的名字及標籤,通常 name:tag 或者 name 格式;可以在一次構建中為一個鏡像設置多個標籤
--network         # 默認 default。在構建期間設置RUN指令的網絡模式

# 示例
docker build -t test/ubuntu:v1 .               # 使用當前目錄的 Dockerfile 創建鏡像,標籤為 test/ubuntu:v
docker build github.com/creack/docker-firefox  # 使用URL的 Dockerfile 創建鏡像。

2.2 遠程鏡像Docker Hub

遠程鏡像的概念可以參照git,區別在於git存儲的是代碼,遠程鏡像庫存儲的是docker鏡像。

2.2.1 docker pull
docker pull java
docker pull -a java   # 下載REPOSITORY為java的所有鏡像

2.2.2 docker push
docker push mynginx:v1   # 上傳本地鏡像mynginx:v1到遠程鏡像庫

3 Docker版本信息
docker info       # 顯示docker詳細信息
docker version    # 顯示docker版本信息

相關焦點

  • Docker命令大全及Dockerfile詳解(附示例)
    ps -a# 停止一個正在運行的容器: docker stop 容器$ docker stop mynginx_1# 重啟容器:docker restart + 容器名$ docker restart mynginx_1# 容器重命名:docker rename 老名字 新名字$ docker rename mynginx_1 mynginx_2# 刪除一個容器:docker
  • Docker 常用命令(.NET Core示例)
    前言本篇文章,整理docker中常用的命令,方便大家學習和命令查詢。最後分享一個.NET Core docker部署的示例。1、查看容器內部信息docker exec -it [container id or name] bash:在運行的容器中執行bash命令,比如執行ls命令列出目錄或者查看文件。
  • Docker-compose命令大全及配置文件詳解
    使用 docker-compose 後不再需要逐一創建和啟動容器。您可以使用 YML 文件來配置應用程式需要的所有服務,然後使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。本章將介紹如何安裝Docker-compose,並對docker-compose.yml配置文件及常用命令進行詳細總結和演示。
  • Docker安裝與入門示例
    The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For
  • Docker基礎入門及示例
    3. docker基礎使用  以web應為為例,我們開發完成之後,將應用打包成鏡像,發布到自己的倉儲伺服器或者直接上傳到伺服器中,伺服器拉取或者加載鏡像,設置對應的埠映射並啟動容器。如果我們存在多個web容器,也可以通過negix在前方負載代理。在後邊我會通過一個.net core站點做一個簡單的示例。
  • 編寫Dockerfiles最佳實踐(Docker 18.09) | 附PDF下載
    此功能要求在運行dockerbuild命令的主機上安裝git。要排除與構建無關的文件(不重構源倉庫),請使用.dockerignore文件。 此文件支持類似於.gitignore文件的排除模式。有關創建的信息,請參閱.dockerignore文件。多階段構建允許您大幅減小最終鏡像的大小,而無需減少中間層和文件的數量。
  • Docker命令
    run 灑灑水拉$ sudo docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]1docker run命令有兩個參數,一個是鏡像名,一個是要在鏡像中運行的命令。
  • Dockerfile 命令介紹及實例
    Dockerfile 語法在我們深入討論Dockerfile之前,讓我們快速過一下Dockerfile的語法和它們的意義。什麼是語法?非常簡單,在編程中,語法意味著一個調用命令,輸入參數去讓應用執行程序的文法結構。這些語法被規則或明或暗的約束。程式設計師遵循語法規範以和計算機交互。如果一段程序語法不正確,計算機將無法識別。
  • Docker 容器常用命令
    啟動docker2.新建並啟動容器常用選項:-d :表示後臺運行(不加此選項,退出命令行後,容器將自動停止運行)-v :掛載宿主機目錄到容器例:docker run -v  /宿主機絕對路徑:/容器內目錄-P :隨機埠映射-p :指定埠映射,一般為 hostPort:containerPort 或 containerPort
  • docker常用命令詳解
    [events|history|logs]``從docker命令使用出發,梳理出如下命令結構圖:-Docker環境信息--info命令用於檢測Docker是否正確安裝,一般結合docker version命令使用。
  • docker反向查看啟動命令和dockerfile
    最近發現兩個非常好用的工具,一個是 runlike,一個是 whaler聽起
  • Docker System命令詳解
    還好Docker 1.13引入了解決方法,它提供了簡單的命令來查看/清理Docker使用的磁碟空間。本文通過一個簡單的示例,可以證明Docker能夠很快地將磁碟佔滿。該示例通過play-with-docker.com運行。點擊Add new instance即可創建新的實例,該實例安裝了最新版的Docker 17.03。
  • Docker 基礎用法和命令幫助
    with it)ubuntu:14.04 - 使用 ubuntu 基礎鏡像 14.04/bin/bash - 運行命令 bash shell注: ubuntu 會有多個版本,通過指定 tag 來啟動特定的版本 [image]:[tag]                  $ sudo docker ps # 查看當前運行的容器,
  • Docker系列教程16-network命令
    本文提供可用於與Docker網絡及與網絡中容器進行交互的network子命令的示例。這些命令可通過Docker Engine CLI獲得。 這些命令是:雖然不是必需的,但在嘗試本節中的示例之前,先閱讀 了解Docker網絡 更佳。 示例使用默認 bridge 網絡以便您可以立即嘗試。要實驗 overlay網絡,請參閱 多主機網絡入門指南。
  • 只要 8 個步驟,學會這個 Docker 命令終極教程!
    Docker容器已經從一種錦上添花的技術轉變成了部署環境的必需品。有時,作為開發人員,我們需要花費大量時間調試或研究Docker工具來幫助我們提高生產力。每一次新技術浪潮來臨之際,我們都需要花費大量時間學習。
  • 【Docker】基礎命令
    create命令創建一個容器,使用該命令創建的容器處於停止狀態,需要使用docker start命令啟動容器。CREATED         STATUS   PORTS    NAMESddb96bff9de6    ubuntu   "/bin/bash"  10 seconds ago   Created           grave_shaw也可以直接使用docker run命令創建並啟動一個新的容器,等價於執行命令docker create和docker start。
  • Docker新手的10個非常有用的命令
    現在這種方式也是大公司們通用的編譯環境的搭建,包括筆者所在的百度,嵌入式相關的應用編譯也都放在了docker中。  在使用了兩天後,提取出了一些我認為最為常用的命令,先整理出來,作以記錄。0 安裝dockersudo apt-get install -y docker.io1.
  • docker基礎命令
    在容器中運行"echo"命令,輸出"hello word"# docker run image_name echo "hello word"  2.在容器中安裝新的程序# docker run image_name yum install -y app_nameNote: 在執行yum 命令的時候,要帶上-y參數。
  • 這54個docker命令!你必須懂!
    所以命令總是在變化。docker一些老的命令經常被棄用,並被新的或更有效的命令取代。您可以使用幫助選項檢查Docker安裝上的最新可用命令:要使用特定命令的選項,可以使用該命令的help選項。例如,要使用docker run命令選項,可以使用以下命令:目前,有13個管理命令和41個通用命令。
  • Docker常用命令大集合,收藏後血賺!
    /bin/bash:放在鏡像名後的是命令,這裡我們希望有個交互式 Shell,因此用的是 /bin/bash。docker run :創建一個新的容器並運行一個命令語法docker run [OPTIONS] IMAGE [COMMAND] [ARG...]