Docker 常用命令速查手冊

  • 2019 年 12 月 16 日
  • 筆記

記錄一下docker的日常使用命令,本文主要針對linux + mac作業系統而言,window是否適用不太確定,謹慎使用

<!– more –>

1. docker進程

docker進程啟動、停止、重啟,常見的三種case

# 啟動docker  service docker start  # 關機docker  service docker stop  # 重啟docker  service docker restart

2. 鏡像操作

鏡像作為容器執行的前提條件,一般需要掌握的幾個命令無非是搜索,下載,刪除,創建

# 鏡像列表  docker images  # 檢索鏡像, 從鏡像倉庫中檢索  docker search xxx  # 下載鏡像  docker pull xxx  # 刪除鏡像  docker rmi xxx

關於創建鏡像,有必要稍微詳細一點點

# 通過容器創建鏡像  docker commit -m="首次提交" -a="一灰灰Blog" dd85eb055fe8 yh/centos:v0.1  # 鏡像歷史查詢  docker history yh/centos

上面的幾個參數進行說明

  • -m 和git的提交一樣,後面跟上描述資訊
  • -a 版權聲明,這個東西是我創建的,有啥問題,找我
  • dd85eb055fe8 容器id
  • yhh/quick-os:0.1 創建的鏡像名

3. 容器操作

接下來就是正菜了,容器的各種操作,啟動,關閉,重啟,日誌查詢以及各種進入容器內部搞事情

a. run

萬事開頭第一步,載入鏡像,創建容器

docker run 鏡像名:版本

run後面可以跟很多的參數,比如容器暴露埠指定,存儲映射,許可權等等,由於參數過多,下面只給出幾個不同的例子,來具體的演示參數可以怎麼加

case1: 創建並後台執行

docker run -i -t -d centos:latest
  • 其中關鍵參數為-d,指定容器運行與前台或者後台,不加上時前台
  • -i: 打開STDIN,用於控制台交互
  • -t: 支援終端登錄

case2: 運行一個帶命令在後台不斷執行的容器

docker run -d centos:latest ping www.baidu.com

case3: 運行一個在後台不斷執行的容器,同時帶有命令,程式被終止後還能重啟繼續跑

docker run -d --restart=always centos:latest ping www.baidu.com

case4: 指定容器名

docker run -d --name=yhh_centos centos:latest

case5: 暴露容器埠80,並與宿主機埠8080綁定

docker run -d --name=yhh_centos -p 8080:80 centos:latest

case6: 指定容器與宿主機目錄(/home/yihui/html/www)共享

docker run -d --name=yhh_centos -v /home/yihui/html/www:/var/www centos:latest

b. 基操

容器創建完畢之後,就是一些基本操作了,啟動、停止、重啟、刪除

# 查看容器列表, 列出所有的容器  docker ps -a  # 啟動容器,start後面可以跟上容器名,或者容器id  docker start xxx  # (這裡的xxx可以是容器名:yhh_centos 也可以是容器id:f57398ab22c5)  # 關閉容器  docker stop xxx  # 重啟  docker restart xxx  # 刪除  docker rm xxx

在查看容器列表時,如果某個容器的啟動參數特別長,直接使用docker ps -a會發現看不到完整的啟動命令,這個時候可以帶上參數--no-trunc來顯示完整命令

docker ps -a --no-trunc

c. 進階

接下來進入一些容器的高級操作技巧(實際上也並沒有特別酷炫)

為了演示一些進階的內容,這裡創建一個容器作為測試

docker run -it -d --name=yhhos centos

容器日誌查詢

日誌,定位問題的神器

# 查詢xxx容器的日誌  docker logs yhhos

基本上不太會直接使用上面的命令,因為上面把所有的日誌都列印出來了,可以直接晃瞎我們的鈦合金x眼

一般日誌可以加兩個參數 -f, -t

docker logs -f -t --since="2019-05-11" --tail=10 yhhos
  • --since : 此參數指定了輸出日誌開始日期,即只輸出指定日期之後的日誌。
  • -f : 查看實時日誌
  • -t : 查看日誌產生的日期
  • --tail=10 : 查看最後的10條日誌。

文件拷貝

將容器的某個文件撈出來;或者強塞,一個cp即可

# 將當前目錄的test.md文件拷貝到容器的 /tmp 目錄下  docker cp test.md yhhos:/tmp    # 將容器的/tmp/test.md目錄拷貝到當前目錄下  docker cp yhhos:/tmp/test.md ./out.md

進入容器

進入容器內部,然後就可以為所欲為了…

docker exec -it yhhos /bin/bash

獲取容器所有資訊

docker inspect yhhos

II. 其他

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的個人部落格,記錄所有學習和工作中的博文,歡迎大家前去逛逛

2. 聲明

盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激