記錄一下docker的日常使用命令,本文主要針對linux + mac操作系統而言,window是否適用不太確定,謹慎使用
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
容器idyhh/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. 一灰灰Blog: https://liuyueyi.github.io/hexblog
一灰灰的個人博客,記錄所有學習和工作中的博文,歡迎大家前去逛逛
2. 聲明
盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
3. 掃描關注
一灰灰blog