基礎命令
docker version docker info docker --help
鏡像命令
查看
docker images
其中:
-
REPOSITORY:表示鏡像的倉庫源
-
TAG:鏡像的標籤(默認的版本標籤爲 latest,拉鏡像時可以指定 TAG)
-
IMAGE ID:鏡像ID
-
CREATED:鏡像創建時間
-
SIZE:鏡像大小
命令的選項有:
- -a:列出本地所有的鏡像
- -q:只顯示鏡像 ID
- --digests:顯示鏡像的摘要信息
- --no-trunc:顯示完整的鏡像信息
其中最常用的爲
docker images -qa
搜索
docker search [鏡像名]
常見的命令選項有:
- --no-trunc:顯示完整的鏡像描述
- -s:列出星星數不小於指定值的鏡像
- --automated:列出所有自動構建的鏡像
下載鏡像
docker pull [鏡像名]
pull 命令類似 git 拉取代碼,用於下載鏡像,鏡像名後可以跟 TAG 用於指定版本 docker pull 鏡像名:TAG
,在 docker 中不加 TAG 默認爲 latest
刪除鏡像文件
docker rmi 鏡像名ID
可以跟鏡像 ID 也可以跟鏡像名。可以使用 -f 強制刪除,如果需要刪除所有鏡像可以使用 docker rmi -f $(docker images -qa)
如果刪除時提示衝突,可以先刪掉記錄docker ps -a -q | xargs docker rm
或者 docker rm -f $(docker ps -a -q)
然後再刪除即可
容器命令
下載鏡像
docker pull centos
新建並運行容器
docker run [OPTIONS] image [COMMAND] [ARG]
常用的選項有:
- --name:給容器指定名字,不指定的話會自動給定一個名字
- -d:後臺運行容器,返回容器 ID
- -i 與 -t:-i 表示以交互式方式運行容器,-t 表示爲容器分配一個僞終端,通常兩者一起使用
- -P:隨機端口映射
- -p:指定端口映射關係
- --rm:對於foreground容器,由於其只是在開發調試過程中短期運行,其用戶數據並無保留的必要,使用該選項,這樣在容器退出時就能夠自動清理容器內部的文件系統,但是不能和 -d 同時使用
運行方式:
-
交互式容器
docker run -it centos /bin/bash
表示:使用鏡像 centos:latest 以交互模式啓動一個容器,在容器內執行/bin/bash命令。
2. 守護式容器
docker run -d centos
運行以後在進程中看不到對應的容器。因爲 Docker 容器後臺運行,就必須有一個前臺進程。容器運行的命令如果不是那些一直掛起的命令,就會自動退出。
查看正在運行的容器
docker ps [OPTIONS]
常見的選項有
- -a:列出當前所有正在運行的容器+歷史上運行過的
- -l:顯示最近創建的容器
- -n:顯示最近n個創建的容器
- -q:靜默模式,只顯示容器編號
- --no-trunc:不截斷輸出
退出容器
-
停止退出
在容器的交互式終端輸入
exit
回車或者使用 "ctrl+D" 即可停止容器並退出 -
容器不停止退出
即容器仍然在後臺運行,但是推出交互式終端,使用 "ctrl+P+Q" 即可
啓動容器
docker start 容器ID或者容器名
重啓容器
docker restart 容器ID或者容器名
停止容器
1. 正常停止
docker stop 容器ID或者容器名
2. 強制停止
docker kill 容器ID或者容器名
刪除已經停止的容器
docker rm 容器ID
如果需要一次性刪除多個容器,可以使用:
docker rm -f $(docker ps -a -q)
查看日誌
docker logs 容器 ID
通常添加如下選項:
- -t:加入時間戳
- -f:跟隨最新的日誌打印
- --tail 數字:顯示最後多少條
查看容器內部
-
查看容器內部進程
docker top 容器ID
查看容器內部細節
docker inspect 容器ID
進入正在運行的容器
-
exec 進入
docker exec -it 容器ID /bin/bash
在容器中打開新的終端,並且可以啓動新的進程
-
attach 進入
docker attach 容器ID
直接進入容器啓動命令的終端,不會啓動新的進程
拷貝
1. 從容器拷貝到宿主機上:
docker cp 容器ID:容器內路徑 目標的宿主機目錄
2. 從宿主機拷貝到容器:
docker cp 宿主機的目錄 容器ID:容器內路徑
不管容器是否啓動,拷貝都會生效