一、常用dokcer命令匯總
docker常用命令結(jié)構(gòu)圖如下:

docker命令結(jié)構(gòu)圖.jpg
二、docker鏡像相關(guān)命令
- 列出已安裝的鏡像:
docker images
//或者
docker image ls
- 保存已安裝的鏡像:
docker save 鏡像名:tag -o 鏡像名.tar
//或者
docker save 鏡像名:tag > 鏡像名.tar
- 從本地包安裝鏡像:
docker load -i 鏡像名.tar
//或者
docker load < 鏡像名.tar
- 獲取鏡像的詳細(xì)信息:
docker inspect 鏡像名:tag //返回json格式的數(shù)據(jù);
docker inspect -f {{".Size"}} 鏡像名:tag //返回?cái)?shù)據(jù)中指定的某一項(xiàng)內(nèi)容;
- 刪除鏡像:
dokcer rmi 鏡像名:tag
//或者
docker image rm 鏡像名:tag
//加 -f 或者 -force 強(qiáng)制刪除鏡像;
//加 -no-prune 不要刪除未帶標(biāo)簽的父鏡像;
- 清理殘存的、沒有使用的鏡像文件:
docker image prune
#加 -f 或者 -force 強(qiáng)行刪除文件,無需彈出確認(rèn);
#加 -a 或者 -all 刪除所有沒有用的鏡像,不僅僅是臨時文件;
三、docker容器相關(guān)命令
- 創(chuàng)建容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
// -i, --interactive=false: 以交互模式運(yùn)行容器,通常與 -t 同時使用;
// -t, --tty=false: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
// -d, --detach=false: 后臺運(yùn)行容器,并返回容器ID;
// -p, --publish=[]: 指定端口映射,格式為:主機(jī)(宿主)端口:容器端口;
// --name="容器名": 為容器指定一個名稱;
// -h , --hostname="host名": 指定容器的hostname;
// -e , --env=[]: 設(shè)置環(huán)境變量;
// --net="bridge": 指定容器的網(wǎng)絡(luò)連接類型,支持 bridge/host/none/container: 四種類型;
// -v, --volume : 綁定一個卷;
// --privileged=false: 指定容器是否為特權(quán)容器,特權(quán)容器擁有所有的capabilities;
// --restart=no:指定容器停止后的重啟策略;
// no:容器退出時不重啟;
// on-failure:容器故障退出(返回值非零)時重啟;
// always:容器退出時總是重啟(一般選擇此參數(shù));
// --rm=false: 指定容器停止后自動刪除容器,不能以docker run -d啟動的容器;
eg:創(chuàng)建mysql容器
docker run -p 3306:3306 --name mysql \
-v /home/mysql/conf:/etc/mysql \
-v /home/mysql/logs:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=root密碼 \
-d mysql:5.7
- 獲取容器日志:
docker logs [OPTIONS] CONTAINER
// -f: 跟蹤日志輸出;
// --tail:僅列出最新N條容器日志;
- 刪除容器:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
// -f:通過 SIGKILL 信號強(qiáng)制刪除一個運(yùn)行中的容器;
// -l:移除容器間的網(wǎng)絡(luò)連接,而非容器本身;
// -v:刪除與容器關(guān)聯(lián)的卷;
- 列出容器:
docker ps [OPTIONS]
// -a:顯示所有的容器,包括未運(yùn)行的;
// -q:只顯示容器編號;
- 啟動、停止、重啟容器:
docker start CONTAINER //啟動一個或多個已經(jīng)被停止的容器
docker stop CONTAINER //停止一個運(yùn)行中的容器
docker restart CONTAINER //重啟容器
- 進(jìn)入容器:
docker exec -it CONTAINER bash
//或者
docker exec -it CONTAINER /bin/bash
//或者
docker exec -it CONTAINER sh
- 獲取容器元數(shù)據(jù):
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
// -f:指定返回值的模板文件
// -s:顯示總的文件大小
// --type:為指定類型返回JSON
- 復(fù)制文件:
//宿主機(jī)文件復(fù)制到容器內(nèi)
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
//容器內(nèi)文件復(fù)制到宿主機(jī)
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
// -L:保持源目標(biāo)中的鏈接
- 清理數(shù)據(jù)卷:
docker volume prune
ps:如果安裝docker時忘記設(shè)置docker鏡像倉庫地址,則需要在/etc/docker目錄下新增或者修改daemon.json文件,樣例文件如下:
{
"registry-mirrors": ["https://kuamavit.mirror.aliyuncs.com", "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"],
"max-concurrent-downloads": 10,
"storage-driver": "overlay2",
"graph": "/data/docker",
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
然后保存退出,重啟docker
systemctl restart docker
參考文章