Docker基礎篇(常用命令)-雲原生核心

2021-12-25 波哥帶你學編程

  工欲善其事必先利其器,本文我們首先來給大家介紹下docker中的常用命令,只用對這些常用命令非常熟悉我們才能更好的來使用docker。

1.幫助命令

  首先我們來看看docker中的幫助命令

命令說明docker version查看docker的版本信息docker info查看docker詳細的信息docker --helpdocker的幫助命令,可以查看到相關的其他命令

docker version

在這裡插入圖片描述
docker info
在這裡插入圖片描述
docker --help
在這裡插入圖片描述2.鏡像命令

  接下來我們看看docker中常用的鏡像命令。

鏡像命令說明docker images列出本地主機上的鏡像docker search 鏡像名稱從 docker hub 上搜索鏡像docker pull  鏡像名稱從docker hub 上下載鏡像docker rmi 鏡像名稱刪除本地鏡像2.1 docker images

  列出本地主機上的鏡像,我們前面執行了一個hello-world的案例,此時我們的docker中應該是有一個hello-world的鏡像的,如下

在這裡插入圖片描述
各選項說明:選項說明REPOSITORY表示鏡像的倉庫源TAG鏡像的標籤IMAGE ID鏡像IDCREATED鏡像創建時間SIZE鏡像大小

  如果你不指定一個鏡像的版本標籤,例如你只使用 ubuntu,docker 將默認使用 ubuntu:latest 鏡像

在docker images 後面可以添加option參數
option參數

參數說明-a列出本地所有的鏡像-q只顯示鏡像ID--digests顯示鏡像的摘要信息--no-trunc顯示完整的鏡像信息

-a

在這裡插入圖片描述

-q

在這裡插入圖片描述
--digests
在這裡插入圖片描述
--no-trunc
在這裡插入圖片描述2.2 docker search

  docker hub是docker的在線倉庫(https://hub.docker.com/).我們可以通過docker search在上面來搜索我們需要的鏡像

在這裡插入圖片描述
在這裡插入圖片描述
我們通過命令來搜索:docker search [OPTIONS] 鏡像名稱在這裡插入圖片描述
OPTIONS選項options參數說明--no-trunc顯示完整的鏡像描述信息-s列出收藏數不小於指定值的鏡像--automated只列出automated build 類型的鏡像  自動構建在這裡插入圖片描述在這裡插入圖片描述在這裡插入圖片描述2.3 docker pull

  前面我們介紹了 search命令可以從docker hub上搜索到相關的鏡像,接下來看看我們通過docker pull 來下載鏡像 docker pull 鏡像名稱[:TAG]

在這裡插入圖片描述
通過鏡像加速下載還是比較快的
在這裡插入圖片描述
在這裡插入圖片描述2.3 docker rmi

  最後我們來看看刪除鏡像的操作

刪除方式命令刪除單個docker rmi -f 鏡像ID刪除多個docker rmi -f 鏡像1:TAG 鏡像2:TAG刪除全部docker rmi -f $(docker images -qa)在這裡插入圖片描述
注意-f表示強制刪除3.容器命令

  接下來我們看看容器相關的命令,有鏡像才能創建容器,這是核心前提,所以我們先下載一個CentOS鏡像

在這裡插入圖片描述3.1 新建並啟動容器

  centos的鏡像文件已經下載好了,接下來我們開始創建第一個容器,命令如下:

docker run [OPTIONS] IMAGE [COMMAND]

OPTIONS說明常用:有些是一個減號,有些是兩個減號

options說明--name"容器新名字": 為容器指定一個名稱-d後臺運行容器,並返回容器ID,也即啟動守護式容器-i以交互模式運行容器,通常與 -t 同時使用-t為容器重新分配一個偽輸入終端,通常與 -i 同時使用-P:隨機埠映射-p指定埠映射,有以下四種格式 ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort

啟動交互式容器:

docker run -it centos /bin/bash 

在這裡插入圖片描述3.2 列出當前正在運行的容器

  上面我們啟動了一個centos容器,並且進入了交互界面,這時我們可以通過

docker ps [OPTIONS]

來查看正在運行的容器,OPTIONS說明

OPTIONS說明-a列出當前所有正在運行的容器+歷史上運行過的-l顯示最近創建的容器。-n顯示最近n個創建的容器。-q靜默模式,只顯示容器編號。--no-trunc不截斷輸出。在這裡插入圖片描述3.3 退出容器

  我們啟動了一個centos容器,這時我們想要退出容器怎麼辦呢?其實我們有兩種方式來退出。

退出方式說明exit容器停止退出ctrl+p+q容器不停止退出在這裡插入圖片描述在這裡插入圖片描述3.4 啟動容器

  上面我們停止了一個容器,那麼我們來看看怎麼有別於上面的新建啟動,我們來重啟一個前面的容器。

docker start 容器ID或者容器名稱

在這裡插入圖片描述3.5 重啟容器

  重啟容器我們來看看命令

docker restart 容器ID或者容器名稱

在這裡插入圖片描述3.6 停止容器

  相對應的停止容器,會比較緩慢的停止

docker stop 容器ID或者容器名

3.7 強制停止容器

  強制停止容器相比於上面的普通停止容器的方式會更加的直接。

docker kill 容器ID或者容器名

3.8刪除已停止的容器

  有時候我們需要將不需要的容器給刪除。

docker rm 容器ID

一次性刪除多個容器

docker rm -f $(docker ps -q -a)
# 將 管道符前面的命令結果作為後面命令的參數
docker ps -a -q | xargs docker rm 

4.其他命令4.1 守護式容器

  前面我們創建的容器是交互式的,接下來我們創建守護式的容器

docker run -d 容器名

在這裡插入圖片描述
問題:然後 docker ps -a 進行查看, 會發現容器已經退出
  很重要的要說明的一點: Docker容器後臺運行,就必須有一個前臺進程.
容器運行的命令如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的。
  這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可。例如
service nginx start
  但是,這樣做,nginx為後臺進程模式運行,就導致docker前臺沒有運行的應用,這樣的容器後臺啟動後,會立即自殺因為他覺得他沒事可做了.
所以,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行4.2 容器日誌

  上面創建的守護式容器,因為沒有前端進程運行,所以啟動後就被幹掉了,這時我們可以啟動容器後運行個循環的腳本。如下

docker run -d centos /bin/sh -c "while true;do echo hello bobo;sleep 2;done"

在這裡插入圖片描述日誌參數說明-t是加入時間戳-f跟隨最新的日誌列印--tail數字 顯示最後多少條在這裡插入圖片描述4.3 容器內運行的進程在這裡插入圖片描述4.4 容器內部細節

  以json數據的形式來查看容器的數據

docker inspect 容器ID

在這裡插入圖片描述4.5 進入正在運行的容器

  當我們以Ctrl+p+q的方式退出容器後,我們還需要再次進入到容器中,這時我們可以通過兩種方式進入

進入方式說明exec在容器中打開新的終端,並且可以啟動新的進程attach直接進入容器啟動命令的終端,不會啟動新的進程

attach

在這裡插入圖片描述

exec

在這裡插入圖片描述
在容器外執行發送命令在容器內執行。4.6 從容器內拷貝文件到主機

  有時我們也需要從容器中拷貝內容到宿主機中。

docker cp 容器ID:容器內路徑 目的主機路徑

5.總結

  上面介紹的我們在實際開發中會碰到的常用命令,其他命令可以參考如下,或自行查閱

在這裡插入圖片描述命令說明注釋attachAttach to a running container當前 shell 下 attach 連接指定運行鏡像buildBuild an image from a Dockerfile通過 Dockerfile 定製鏡像commitCreate a new image from a container changes提交當前容器為新的鏡像cpCopy files/folders from the containers filesystem to the host path從容器中拷貝指定文件或者目錄到宿主機中createCreate a new container創建一個新的容器,同 run,但不啟動容器diffInspect changes on a container's filesystem查看 docker 容器變化eventsGet real time events from the server從 docker 服務獲取容器實時事件execRun a command in an existing container在已存在的容器上運行命令exportStream the contents of a container as a tar archive導出容器的內容流作為一個 tar 歸檔文件[對應 import ]historyShow the history of an image展示一個鏡像形成歷史imagesList images列出系統當前鏡像importCreate a new filesystem image from the contents of a tarball從tar包中的內容創建一個新的文件系統映像[對應export]infoDisplay system-wide information顯示系統相關信息inspectReturn low-level information on a container查看容器詳細信息killKill a running containerkill 指定 docker 容器loadLoad an image from a tar archive從一個 tar 包中加載一個鏡像[對應 save]loginRegister or Login to the docker registry server註冊或者登陸一個 docker 源伺服器logoutLog out from a Docker registry server從當前 Docker registry 退出logsFetch the logs of a container輸出當前容器日誌信息portLookup the public-facing port which is NAT-ed to PRIVATE_PORT查看映射埠對應的容器內部源埠pausePause all processes within a container暫停容器psList containers列出容器列表pullPull an image or a repository from the docker registry server從docker鏡像源伺服器拉取指定鏡像或者庫鏡像pushPush an image or a repository to the docker registry server推送指定鏡像或者庫鏡像至docker源伺服器restartRestart a running container重啟運行的容器rmRemove one or more containers移除一個或者多個容器rmiRemove one or more images移除一個或多個鏡像[無容器使用該鏡像才可刪除,否則需刪除相關容器才可繼續或 -f 強制刪除]runRun a command in a new container創建一個新的容器並運行一個命令saveSave an image to a tar archive保存一個鏡像為一個 tar 包[對應 load]searchSearch for an image on the Docker Hub在 docker hub 中搜索鏡像startStart a stopped containers啟動容器stopStop a running containers停止容器tagTag an image into a repository給源中鏡像打標籤topLookup the running processes of a container查看容器中運行的進程信息unpauseUnpause a paused container取消暫停容器versionShow the docker version information查看 docker 版本號waitBlock until a container stops, then print its exit code截取容器停止時的退出狀態值

~好了常用命令就介紹到此,歡迎關注點讚O(∩_∩)O哈哈~

相關焦點

  • Docker小白到實戰之常用命令演示,通俗易懂
    2. 常用命令實操2.1 全局命令docker version:查看docker版本信息。由於終端阻塞,這裡另開一個終端執行docker ps命令看運行的容器,如下:在容器裡面只能執行一些核心的命令,因為是極簡版,所以內部只包含重要的功能,如果需要其他功能可以自己安裝擴展。
  • docker基礎命令
    在容器中運行"echo"命令,輸出"hello word"# docker run image_name echo "hello word"  2.在容器中安裝新的程序# docker run image_name yum install -y app_nameNote: 在執行yum 命令的時候,要帶上-y參數。
  • docker容器化實戰(常用命令實踐)
    容器常用命令列表: – docker run – docker ps – docker stop – docker start – docker restart – docker attach|exec – docker inspect – docker top
  • Docker常用部署命令大全
    容器生命周期管理命令run創建一個新的容器。# 使用docker鏡像nginx:latest以後臺模式啟動一個容器,並將容器命名為mynginx。  docker run -p 80:80 -v /data:/data -d nginx:latest    # 使用鏡像nginx:latest以交互模式啟動一個容器,在容器內執行/bin/bash命令。
  • 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 常用命令大全
    docker run -p 80:80 -v /data:/data -d nginx:latest  # 使用鏡像nginx:latest以交互模式啟動一個容器,# 在容器內執行/bin/bash命令。
  • Docker學習筆記-基礎命令三
    鏡像ID.Command命令.CreatedAt容器創建時間.RunningFor容器運行時間.Status狀態.Size大小.Names容器名稱.Labels分配給容器的所有標籤.Label容器特定標籤的值.Mounts容器中安裝的卷.Networks附加到容器的網絡docker ps --format "{{.ID}}:{{Command}}
  • 掃盲 docker 常用命令
    docker --help #查看docker命令docker info #docker 詳細信息,鏡像和容器docker version #查看docker版本幫助文檔地址:https://docs.docker.com/reference/推薦下自己做的 Spring
  • Docker(三):Dockerfile 命令詳解
    Dockerfile 指令詳解1 FROM 指定基礎鏡像FROM 指令用於指定其後構建新鏡像所使用的基礎鏡像。FROM 指令必是 Dockerfile 文件中的首條命令,啟動構建流程後,Docker 將會基於該鏡像構建新鏡像,FROM 後的命令也會基於這個基礎鏡像。
  • Docker常用命令,值得收藏!
    操作容器run$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]使用指定的鏡像來運行容器,並可選地在容器中運行指定的命令。exec$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]在運行的容器中執行指定的命令。
  • Dockerfile 基本命令詳解
    我們通過docker build 命令用於從Dockerfile 文件構建鏡像。如果你要構建自定義鏡像,Dockerfile 是你必須學會的技能之一。2. Dockerfile 的基本結構Dockerfile 一般分為:基礎鏡像、鏡像元信息、鏡像操作指令和容器啟動時執行指令,# 為 Dockerfile 中的注釋。3.
  • docker入門(上)
    第一篇主要是說docker的一些基本概念,已經常用的命令、基本操作,以及我了解的國內的docker鏡像的情況。第二篇則是完全實戰,通過兩種方式打出一個自己平時開發使用web環境的鏡像,從而能夠快速的複製出去給其他相應的開發人員,降低環境配置的成本。
  • 看完這篇,Docker你就入門了
    1、Docker ClientDocker客戶端其實就是Docker提供命令行界面工具,是許多Docker 用戶與Docker 進行交互的主要方式。客戶端可以構建、運行和停止應用程式,還可以遠程與Docker_HOST進行交互。 最常用的Docker客戶端就是Docker命令,我們可以通過Docker命令很方便地在host上構建和運行Docker容器。
  • Docker命令大整理,附示例!
    沒有示例的命令,將 container_name/image_name進行對應替換.docker中有REPOSITORY, TAG, IMAGE,CONTAINER的概念docker命令中的鏡像名,容器名 支持使用Tab鍵進行聯想1 Docker容器 docker中默認的命令是對容器進行操作 ,現在看到容器相關的命令是默認沒有container的。
  • Docker快速入門之原理篇
    開發和拓展更加簡單:Docker的以容器為基礎的平臺允許高度可移植的工作。Docker容器可以在開發者機器上運行,也可以在實體或者虛擬機上運行,也可以在雲平臺上運行。Docker的可移植、輕量特性同樣讓動態地管理負載更加簡單。你可以用Docker快速地增加應用規模或者關閉應用程式和服務。Docker的快速意味著變動幾乎是實時的。
  • Docker 命令自動補全?要的
    #變成了docker container run ...他說,本來對 Docker 命令就不熟悉,這下感覺更加混亂了。其實個人看來,這麼變化還使得命令看著更加規整當在命令行直接輸入 docker 然後回車:從圖中可以看出,Docker 將命令結構化的劃分了兩大類,Management Commands 和 Commands,其實前者就是一級命令,後者就是子命令 (這是自 Docker 1.13 開始的改動),所以以後使用命令就是這樣滴:
  • 10分鐘快速掌握Docker必備基礎知識
    Docker的基本概念鏡像(Image)、容器(Container)與倉庫(Repository),這三個是docker中最基本也是最核心的概念,對這三個概念的掌握與理解,是學習dockerdocker images從倉庫拉取鏡像前面我們已經演示過使用docker pull命令拉取了hello-world鏡像了,當然使用docker image pull命令也是一樣的。
  • 實戰|兩種常用的跨主機Docker容器互通方法
    現在提到容器,可能很容易想到的就是Kubernates,確實它很火,也很強大,但是對於規模非常小,容器不多的小環境,Kubernetes 就顯得比較累贅了
  • Docker 極簡入門教程
    之後 Docker 會執行我們預先指定的命令,運行應用程式。鏡像不包含任何動態數據,其內容在構建之後也不會被改變。Homebrew 的 Cask 已經支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 來進行安裝,執行如下命令:brew cask install docker更多安裝方式,請查看官方文檔:https://www.docker.com/get-starteddocker -v
  • docker容器操作命令:目錄掛載與安裝MySQL容器詳解
    今天為大家分享的主題:docker容器操作命令:目錄掛載(卷Volume)、使用Docker安裝MySQL容器,歡迎大家一起來閱讀哦!