2026年Docker常用命令速查表(收藏這一篇就夠了)
前言
去年有一次服務(wù)器磁盤滿了,查了半天最后發(fā)現(xiàn)是Docker鏡像和容器占了幾十G,一個(gè)docker system prune -a直接釋放了20G+。從那以后我就養(yǎng)成了定期清理的習(xí)慣。
我現(xiàn)在服務(wù)器上的服務(wù)基本全部容器化了——Jenkins、MySQL、Nginx,還有一些公司的自動(dòng)化測(cè)試平臺(tái)服務(wù)。配合Portainer做可視化管理,日常維護(hù)確實(shí)省心不少。
下面是我工作中高頻使用的命令,沒有廢話,直接復(fù)制能用。
一、鏡像操作
# 搜索鏡像 docker search nginx # 拉取鏡像(建議指定版本) docker pull nginx:1.25 docker pull mysql:8.0 # 查看本地鏡像 docker images docker images -a # 包括中間層 # 刪除鏡像 docker rmi nginx:1.25 docker rmi $(docker images -q) # 刪除所有(慎用?。? # 鏡像導(dǎo)出/導(dǎo)入(內(nèi)網(wǎng)環(huán)境經(jīng)常用) docker save -o nginx.tar nginx:1.25 docker load -i nginx.tar
踩坑提醒:千萬別用latest標(biāo)簽。上次公司有個(gè)服務(wù)因?yàn)閘atest自動(dòng)更新掛了,排查了兩個(gè)小時(shí)才發(fā)現(xiàn)是新版本不兼容。從那以后所有鏡像我都鎖死版本號(hào)。
二、容器生命周期
# 創(chuàng)建并啟動(dòng) docker run -d --name my-nginx -p 80:80 nginx # 生產(chǎn)環(huán)境常用參數(shù)組合(我給公司搭服務(wù)基本都用這個(gè)模板) docker run -d \ --name mysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=your_password \ -v /data/mysql:/var/lib/mysql \ --restart=always \ mysql:8.0
--restart=always 這個(gè)一定要加,我之前有次服務(wù)器重啟忘了手動(dòng)起容器,導(dǎo)致CI流水線全掛,運(yùn)維群炸了。
# 查看容器 docker ps docker ps -a # 包括已停止的 # 啟停 docker start my-nginx docker stop my-nginx docker restart my-nginx # 刪除 docker rm my-nginx docker rm -f my-nginx # 強(qiáng)刪運(yùn)行中的(別在生產(chǎn)環(huán)境隨便用)
三、進(jìn)入容器
# 推薦:exec(退出不影響容器) docker exec -it my-nginx /bin/bash docker exec -it my-nginx /bin/sh # alpine鏡像沒有bash,用sh # 執(zhí)行單條命令 docker exec my-nginx cat /etc/nginx/nginx.conf # 文件復(fù)制(調(diào)試配置文件時(shí)經(jīng)常用) docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf docker cp ./nginx.conf my-nginx:/etc/nginx/nginx.conf
我經(jīng)常改完Nginx配置先copy出來,改好了再copy回去,docker restart一下就生效。比每次都進(jìn)去vi方便多了。
四、日志與調(diào)試
這部分是我用得最多的。線上出問題第一件事就是看日志。
# 查看日志 docker logs my-nginx docker logs -f my-nginx # 實(shí)時(shí)跟蹤(排查問題必用) docker logs --tail 100 my-nginx # 最后100行 docker logs --since 30m my-nginx # 最近30分鐘 # 查看容器詳情 docker inspect my-nginx # 資源占用 docker stats docker stats --no-stream # 打印一次就退出,適合寫腳本監(jiān)控
有時(shí)候容器日志太大,我會(huì)配合Goaccess生成可視化的HTML報(bào)告:
# 把容器日志導(dǎo)出來分析 docker logs my-nginx > access.log goaccess access.log -o report.html --log-format=COMBINED --real-time-html
Goaccess這塊我之前單獨(dú)寫過筆記,配合Nginx日志分析效果很好,能直觀看到哪些接口慢、哪些IP訪問異常。
五、網(wǎng)絡(luò)管理
# 創(chuàng)建自定義網(wǎng)絡(luò) docker network create my-network # 容器加入網(wǎng)絡(luò)(可以用容器名互訪) docker run -d --name app --network my-network my-app docker run -d --name db --network my-network mysql:8.0 # 查看網(wǎng)絡(luò)詳情 docker network inspect my-network
經(jīng)驗(yàn)教訓(xùn):別用容器IP互訪,容器重啟IP會(huì)變,服務(wù)就掛了。用自定義網(wǎng)絡(luò)+容器名是最穩(wěn)的方案。之前公司有個(gè)服務(wù)因?yàn)閔ardcode了容器IP,rebuild之后怎么都連不上數(shù)據(jù)庫,查了半天才發(fā)現(xiàn)這個(gè)問題。
六、數(shù)據(jù)卷
docker volume create mysql-data docker volume ls docker volume inspect mysql-data docker volume prune # 清理未使用的卷(釋放空間)
七、Docker Compose
單個(gè)容器還好,服務(wù)多了之后compose是剛需:
docker compose up -d # 啟動(dòng)所有服務(wù) docker compose down # 停止并刪除 docker compose logs -f # 查看所有服務(wù)日志 docker compose restart mysql # 重啟單個(gè)服務(wù) docker compose ps # 服務(wù)狀態(tài)
我現(xiàn)在搭測(cè)試環(huán)境基本都是先寫docker-compose.yml,一條命令把MySQL、Redis、Nginx全拉起來。比手動(dòng)一個(gè)個(gè)run方便太多了。
八、清理磁盤
# 按需清理 docker container prune # 停止的容器 docker image prune -a # 未使用的鏡像 # 一鍵大掃除(釋放空間神器) docker system prune -a # 查看磁盤占用 docker system df
我建議在crontab里加一個(gè)每月自動(dòng)清理:
# 每月1號(hào)凌晨3點(diǎn)自動(dòng)清理 0 3 1 * * docker system prune -af >> /var/log/docker-prune.log 2>&1
最后
這些命令基本覆蓋了我的日常80%的Docker操作場(chǎng)景。建議大家收藏備用,用的時(shí)候Ctrl+F搜關(guān)鍵詞就行。
以上就是2026年Docker常用命令速查表(收藏這一篇就夠了)的詳細(xì)內(nèi)容,更多關(guān)于Docker常用命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux下Docker及portainer相關(guān)配置方法
本文以CentOS 7為例,安裝docker CE版本,docker有兩種版本,社區(qū)版本CE和企業(yè)版本EE,通過實(shí)例代碼給大家介紹了Linux下Docker及portainer相關(guān)配置方法,感興趣的朋友跟隨小編一起看看吧2019-06-06
Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟
這篇文章主要介紹了Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
多云環(huán)境下的Docker部署策略實(shí)現(xiàn)
在多云環(huán)境下,Docker容器技術(shù)為應(yīng)用程序的部署提供了高度的靈活性和可擴(kuò)展性,本文就來介紹一下多云環(huán)境下的Docker部署策略實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Spring Boot 2.4 新特性之一鍵構(gòu)建Docker鏡像的過程詳解
這篇文章主要介紹了Spring Boot 2.4 新特性之一鍵構(gòu)建Docker鏡像的過程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
docker?部署Flink和傳統(tǒng)部署的詳細(xì)過程
Flink是一個(gè)開源的分布式流處理框架,支持狀態(tài)管理、事件時(shí)間、窗口模型等特性,可以通過下載、解壓、配置和啟動(dòng)來使用,提供了多種運(yùn)行方式,包括Docker和SQLClient,本文介紹docker部署Flink和傳統(tǒng)部署的詳細(xì)過程,感興趣的朋友跟隨小編一起看看吧2025-11-11
手動(dòng)構(gòu)建自己的docker容器鏡像實(shí)戰(zhàn)
這篇文章主要介紹了如何手動(dòng)構(gòu)建自己的鏡像并上傳到鏡像倉庫中,文中有詳細(xì)的代碼實(shí)例,需要的朋友可以參考閱讀2023-04-04

