docker學習2,docker基本命令

操作docker容器,和操作linux差不多,都是使用命令行操作。不同的是,操作docker需要使用docker的命令。docker的命令和linux的命令很多相似的,也有一些不同。廢話不多說,開始學習。docker命令分爲鏡像相關,容器生命週期相關,容器操作相關,倉庫相關等一系列命令。是用docker命令時,前要加上 docker ,比如查看docker版本,在終端輸入 docker version

版本相關
  1. version 查看docker的版本,能看到docker的client和server的版本

  2. info 顯示 Docker 系統信息,包括鏡像和容器數。


    可以看到,有兩個容器,一個運行中一個停止。本地還有兩個鏡像

本地鏡像相關操作
  1. images 查看本地所有鏡像

  2. rmi 刪除本地一個或多少鏡像。這個命令和linux的rm命令很像,可以使用 -f 強制刪除

  3. tag 爲本地鏡像打一個標籤,可以理解爲重命名。

可以看到,使用tag命令給mysql加了一個標籤,兩個鏡像的id是相同的,說明還是同一個鏡像。使用rmi命令刪除一個,另一個不受影響。

  1. build 命令用於使用 Dockerfile 創建鏡像。這個命令比較複雜,有很多參數,而且需要配合Dockerfile文件使用

  2. history 查看指定鏡像的創建歷史。

    • -H :以可讀的格式打印鏡像大小和日期,默認爲true;
    • --no-trunc :顯示完整的提交記錄;
    • -q :僅列出提交記錄ID。
  3. save 將本地的容器保存爲一個文件。


    已經把本地的redis 鏡像保存到了當前目錄

  4. load 導入使用 save 命令導出的鏡像。


    我們先把本地的redis鏡像刪除,再通過load命令把剛纔導出的redis鏡像再導入

  5. import 也是從本地文件導入鏡像。和load 不同的是,import 命令需要指定導入後的鏡像的name和tag


    先把原有的redis鏡像刪掉,再使用import命名導入鏡像,並指定name和tag。一般import命令配合export命令使用

容器倉庫相關
  1. search 在遠程倉庫中搜索相關的鏡像。


    在遠程倉庫中搜索mysql相關的鏡像

  2. pull 從遠程倉庫拉取鏡像到本地,比如拉取mysql命令, docker pull mysql

容器生命週期相關
  1. run 創建一個新的容器並運行;run命令有很多參數,挑幾個常用的介紹一個

    • -d: 後臺運行容器,並返回容器ID;
    • -i: 以交互模式運行容器,通常與 -t 同時使用;
    • -t: 爲容器重新分配一個僞輸入終端,通常與 -i 同時使用;
    • --name="nginx-lb": 爲容器指定一個名稱;注意這個前面是 --
    • -e: 設置環境變量;在用docker啓動mysql的時候,會用到環境變量設置mysql的密碼
    • -P: 隨機端口映射,容器內部端口隨機映射到主機的高端口,大寫的P;
    • -p: 指定端口映射,格式爲:主機(宿主)端口:容器端口;比如使用docker運行nginx時,將容器的nginx80端口映射到主機的8080端口;-p 8080:80
    • -m :設置容器使用內存最大值;
    • --volume , -v: 將主機上的目錄掛載到容器內;格式爲:主機目錄:容器內的目錄
      以運行mysql爲例,
      運行一個mysql容器,重命名爲my_mysql,將容器的3306端口映射到主機的3366端口,並將mysql的存儲目錄/var/lib/mysql 掛載到用戶目錄的mysql_data目錄下
  2. start 啓動一個容器,可以使用容器的id也可以使用容器的name

  3. stop 停止一個容器

  4. restart 重啓一個容器

  5. kill 殺死一個容器,和linux的kill命令很像,可以使用容器的name操作

  6. pause 暫停容器中所有的進程。

  7. unpause 恢復容器暫停的進程。

  8. create 創建一個容器,但是不啓動這個容器

  9. exec 在運行的容器中執行命令。可以看做是進入到這個容器中。

    • -d :分離模式: 在後臺運行
    • -i :默認打開,沒有附加也保持STDIN 打開
    • -t :分配一個僞終端
      使用命令 docker exec -it redis 進入name爲redis 的容器中
容器操作相關
  1. ps 列出當前機器上的容器

    • -a:列出所有的容器,包括沒有運行的容器
    • -f :根據條件過濾顯示的內容
    • -n :列出最近創建的n個容器
    • -q :靜默模式,只顯示容器編號
  2. top 查看容器中運行的進程信息,支持 ps 命令參數。

  3. logs 獲取容器的日誌

    • -f : 跟蹤日誌輸出,和linux的 tail 的-f效果相同
    • --since :顯示某個開始時間的所有日誌
    • -t : 顯示時間戳
    • --tail :僅列出最新N條容器日誌
  4. **port ** 列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公衆的端口。

  5. export 將容器導出爲一個文件,和save命令相似,但是save命令操作的是鏡像,export操作的是容器。save保存的文件沒有丟失鏡像的歷史,可以回滾到之前。export 保存的文件再導入時會丟失鏡像所有的歷史,所以無法進行回滾
    使用命令 docker export name > filename

  6. commit 從指定容器創建一個新的鏡像。

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

      mariadb 容器生成一個新的鏡像
  7. cp 在宿主機和容器之間複製文件。
    a.txt 複製到 name爲 mysql 容器的 var 目錄 docker cp a.txt redis:/var

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章