1. 程式人生 > >Docker 學習 (2): 常用命令

Docker 學習 (2): 常用命令

日誌 映射 bash 自動退出 主機 run 做了 標簽 端口

Docker 學習 (2): 常用命令

命令行操作前提:

systemctl start docker 啟動docker

sudo -i 進去root模式

一、幫助命令

  1. docker version 查看對應安裝的版本號,可以用來檢測docker是否安裝c成功

    技術分享圖片

  2. docker info Docker容器安裝之後,個人信息的描述,比version更加詳細

技術分享圖片

  1. docker --help docker的幫助命令

二、鏡像命令

前提:在操作鏡像的時候,如果鏡像名稱的後面沒有加版本號,那默認就是操作的最高的版本(tomcat:latest)

所以在操作鏡像的時候最好都要加上對應的版本號。。。

  1. docker images 參數 列出本地主機上的鏡像

    -a列出本地所有的鏡像(含中間映像層)
    -q 只顯示鏡像ID
    --digests 顯示鏡像的摘要信息
    --no-trunc 顯示完整的鏡像信息

    技術分享圖片

    • 各個選項說明:

REPOSITORY表示鏡像的倉庫源
TAG 鏡像的標簽
IMAGE ID 鏡像ID
CREATED 鏡像創建時間
SIZE 鏡像大小
  1. docker search [OPTIONS] 鏡像名字 查看某一個鏡像

    官網網址 : https://hub.docker.com 上述命令與網站顯示的內容相同

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

    技術分享圖片 技術分享圖片 技術分享圖片

  2. docker pull 鏡像名稱 下載鏡像

技術分享圖片

  1. docker rmi 鏡像名稱 刪除鏡像

    加 -f 是強制刪除,如果鏡像在運行,就不可以刪除。可以加 -f 強制刪除

    docker rmi -f 鏡像ID刪除單個
    docker rmi -f 鏡像名1:TAG 鏡像名2:TAG 刪除多個
    docker rmi -f $(docker images -qa) 刪除全部

    技術分享圖片

  • docker rmi -f $(docker images -qa)

    相當於是聚合命令,先執行$()裏邊的語句,查詢到全部之後,刪除全部

三、容器命令

  1. 啟動容器 docker run [OPTIONS] 鏡像名稱 參數

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

    --name容器新名字": 為容器指定一個名稱
    -d 後臺運行容器,並返回容器id,也即啟動守護式容器
    -i 以交互模式運行容器,通常與 -t 同時使用
    -t 為容器重新分配一個偽輸入終端,通常與 -i 同時使用
    -P 隨機端口映射

    | -p | 指定端口映射,有以下四種格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort |

  1. 啟動交互式容器

    技術分享圖片

    • #使用鏡像centos:latest以交互模式啟動一個容器,在容器內執行/bin/bash命令。(/bin/bash為默認的,可以不寫)

  2. 啟動守護式容器

    docker run -d centos

    問題:然後docker ps -a 進行查看, 會發現容器已經退出 很重要的要說明的一點: Docker容器後臺運行,就必須有一個前臺進程. 容器運行的命令如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的。

    這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可。例如 service nginx start 但是,這樣做,nginx為後臺進程模式運行,就導致docker前臺沒有運行的應用, 這樣的容器後臺啟動後,會立即自殺因為他覺得他沒事可做了. 所以,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行

  3. 列出當前所有正在運行的容器 docker ps [OPTIONS]

    • OPTIONS說明(常用):

      -a :列出當前所有正在運行的容器+歷史上運行過的 -l :顯示最近創建的容器。 -n:顯示最近n個創建的容器。 -q :靜默模式,只顯示容器編號。 --no-trunc :不截斷輸出。OPTIONS說明(常用):

  4. 退出容器

    • exit 容器停止退出

    • ctrl+P+Q 容器不停止退出

  5. 啟動容器 docker start 容器ID或者容器名

  6. 重啟容器 docker restart 容器ID或者容器名

  7. 停止容器 docker stop 容器ID或者容器名

  8. 強制停止 docker kill 容器ID或者容器名

  9. 刪除容器 docker rm 容器ID

    1. docker rm -f $(docker ps -a -q) 刪除多個

    2. docker ps -a -q | xargs docker rm 刪除多個

  10. 查看容器的日誌 docker logs -f -t --tail 容器ID

    • -t 是加入時間戳

    • -f 跟隨最新的日誌打印

    • --tail 數字 顯示最後多少條

    啟動守護式容器,以2秒運行一次引號以內的語句(ctrl + c 查看日誌退出,容器停止運行)

    技術分享圖片

    技術分享圖片

  11. 查看容器內運行的進程 docker top 容器ID

技術分享圖片

  1. 查看容器內部細節 docker inspect 容器ID 技術分享圖片

  2. 進入正在運行的容器並以命令行交互

    1. docker exec -it 容器ID /bin/bash

      技術分享圖片

    2. docker attach 容器ID 重新進入

    倆個的區別:

    attach 直接進入容器啟動命令的終端,不會啟動新的進程

    exec 是在容器中打開新的終端,並且可以啟動新的進程

  3. 從容器內拷貝文件到主機上 docker cp 容器ID:容器內路徑 目的主機路徑

技術分享圖片

本人目前也是處於學習階段,如果有任何問題都可以給我評論留言 視頻資源聯系QQ:1731765178(掘金楊)

Docker 學習 (2): 常用命令