目錄
一、幫助命令
1. 查看docker版本
docker version
2. 查看docker信息
docker info
3. 查看docker幫助命令
docker --help
q 退出
二、鏡像命令
1. 列出本地主機上的鏡像
docker images [OPTIONS]
各個選項說明:
REPOSITORY:表示鏡像的倉庫源
TAG:鏡像的標籤IMAGE
IMAGE_ID:鏡像ID
CREATED:鏡像創建時間
SIZE:鏡像大小
同一倉庫源可以有多個TAG,代表這個倉庫源的不同個版本,我們使用REPOSITORY:TAG來定義不同的鏡像。如果你不指定一個鏡像的版本標籤,例如你只使用ubuntu,docker 將默認使用 ubuntu:latest 鏡像
OPTIONS說明:
-a: 列出本地所有的鏡像(含中間層)
-q: 只顯示鏡像ID
--digests : 顯示鏡像的摘要信息
--no-trunc : 顯示完整的鏡像信息
2. 查詢鏡像
docker search [OPTIONS] 某個XXX鏡像的名字
OPTIONS說明:
--notrunc : 顯示完整的鏡像描述
-s : 列出收藏數不小於指定值得鏡像
--automated : 只列出automated build類型的鏡像
3. 下載鏡像
docker pull 某個XXX鏡像的名字
可以指定TAG ;例如: docker pull tomcat:latest
4. 刪除鏡像
docker rmi 某個XXX鏡像的名字
刪除單個:docker rmi -f 鏡像ID
刪除多個:docker rmi -f 鏡像名1:TAG 鏡像名2:TAG
刪除全部:docker rmi -f $(docker images -qa)
三、 容器命令
1. 新建並啓動容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS說明(常用):有些是一個減號,有些是兩個減號
--name="容器新名字": 爲容器指定一個名稱;
-d:後臺運行容器,並返回容器ID,也即啓動守護式容器;
-i:以交互模式運行容器,通常與 -t 同時使用;
-t:爲容器重新分配一個僞輸入終端,通常與 -i 同時使用;
-P: 隨機端口映射;
-p: 指定端口映射,有以下四種格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
#使用鏡像centos:latest以交互模式啓動一個容器,在容器內執行/bin/bash命令。
docker run -it centos /bin/bash
2. 列出所有正在運行的容器
docker ps [OPTIONS]
OPTIONS說明(常用):
-a :列出當前所有正在運行的容器+歷史上運行過的
-l :顯示最近創建的容器。
-n:顯示最近n個創建的容器。
-q :靜默模式,只顯示容器編號。
--no-trunc :不截斷輸出。
3. 退出容器
容器停止退出:exit
容器不停止退出:ctrl + P + Q
4. 啓動容器
docker start 容器ID或容器名
5. 重啓容器
docker restart 容器ID或容器名
6. 停止容器
docker stop 容器ID或容器名
7. 強制停止容器
docker kill 容器ID或容器名
8. 刪除已停止的容器
docker rm 容器ID
一次性刪除多個容器:
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
9. 重點
1)啓動守護式容器:
docker run -d 容器名
Note:
#使用鏡像centos:latest以後臺模式啓動一個容器:docker run -d centos
問題:然後docker ps -a 進行查看, 會發現容器已經退出很重要的要說明的一點: Docker容器後臺運行,就必須有一個前臺進程.容器運行的命令如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的。 這個是docker的機制問題,比如你的web容器,我們以nginx爲例,正常情況下,我們配置啓動服務只需要啓動響應的service即可。例如service nginx start但是,這樣做,nginx爲後臺進程模式運行,就導致docker前臺沒有運行的應用,這樣的容器後臺啓動後,會立即自殺因爲他覺得他沒事可做了.所以,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行
2)查看容器日誌
docker logs -f -t --tail 容器ID
-t 是加入時間戳
-f 是跟隨最新的日誌打印
--tail 數字 顯示最後多少條
3)查看容器內運行的進程
docker top 容器ID
4) 查看容器內部細節
docker inspect 容器ID
5)進入正在運行的容器並以命令行交互
docker exec -it 容器ID bashShell
重新進入: docker attach 容器ID
上述兩個命令的區別:
attach 直接進入容器啓動命令的終端,不會啓動新的進程
exec 是在容器中打開新的終端,並且可以啓動新的進程
6)從容器內拷貝文件到主機上
docker cp 容器ID:容器內的路徑 目的主機路徑
注:整理自尚硅谷Docker教學視頻