2026年Docker常用命令速查表(收藏這一篇就夠了)
前言
去年有一次服務器磁盤滿了,查了半天最后發(fā)現(xiàn)是Docker鏡像和容器占了幾十G,一個docker system prune -a直接釋放了20G+。從那以后我就養(yǎng)成了定期清理的習慣。
我現(xiàn)在服務器上的服務基本全部容器化了——Jenkins、MySQL、Nginx,還有一些公司的自動化測試平臺服務。配合Portainer做可視化管理,日常維護確實省心不少。
下面是我工作中高頻使用的命令,沒有廢話,直接復制能用。
一、鏡像操作
# 搜索鏡像 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) # 刪除所有(慎用!) # 鏡像導出/導入(內(nèi)網(wǎng)環(huán)境經(jīng)常用) docker save -o nginx.tar nginx:1.25 docker load -i nginx.tar
踩坑提醒:千萬別用latest標簽。上次公司有個服務因為latest自動更新掛了,排查了兩個小時才發(fā)現(xiàn)是新版本不兼容。從那以后所有鏡像我都鎖死版本號。
二、容器生命周期
# 創(chuàng)建并啟動 docker run -d --name my-nginx -p 80:80 nginx # 生產(chǎn)環(huán)境常用參數(shù)組合(我給公司搭服務基本都用這個模板) 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 這個一定要加,我之前有次服務器重啟忘了手動起容器,導致CI流水線全掛,運維群炸了。
# 查看容器 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 # 強刪運行中的(別在生產(chǎn)環(huá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 # 文件復制(調(diào)試配置文件時經(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一下就生效。比每次都進去vi方便多了。
四、日志與調(diào)試
這部分是我用得最多的。線上出問題第一件事就是看日志。
# 查看日志 docker logs my-nginx docker logs -f my-nginx # 實時跟蹤(排查問題必用) 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)控
有時候容器日志太大,我會配合Goaccess生成可視化的HTML報告:
# 把容器日志導出來分析 docker logs my-nginx > access.log goaccess access.log -o report.html --log-format=COMBINED --real-time-html
Goaccess這塊我之前單獨寫過筆記,配合Nginx日志分析效果很好,能直觀看到哪些接口慢、哪些IP訪問異常。
五、網(wǎng)絡管理
# 創(chuàng)建自定義網(wǎng)絡 docker network create my-network # 容器加入網(wǎng)絡(可以用容器名互訪) docker run -d --name app --network my-network my-app docker run -d --name db --network my-network mysql:8.0 # 查看網(wǎng)絡詳情 docker network inspect my-network
經(jīng)驗教訓:別用容器IP互訪,容器重啟IP會變,服務就掛了。用自定義網(wǎng)絡+容器名是最穩(wěn)的方案。之前公司有個服務因為hardcode了容器IP,rebuild之后怎么都連不上數(shù)據(jù)庫,查了半天才發(fā)現(xiàn)這個問題。
六、數(shù)據(jù)卷
docker volume create mysql-data docker volume ls docker volume inspect mysql-data docker volume prune # 清理未使用的卷(釋放空間)
七、Docker Compose
單個容器還好,服務多了之后compose是剛需:
docker compose up -d # 啟動所有服務 docker compose down # 停止并刪除 docker compose logs -f # 查看所有服務日志 docker compose restart mysql # 重啟單個服務 docker compose ps # 服務狀態(tài)
我現(xiàn)在搭測試環(huán)境基本都是先寫docker-compose.yml,一條命令把MySQL、Redis、Nginx全拉起來。比手動一個個run方便太多了。
八、清理磁盤
# 按需清理 docker container prune # 停止的容器 docker image prune -a # 未使用的鏡像 # 一鍵大掃除(釋放空間神器) docker system prune -a # 查看磁盤占用 docker system df
我建議在crontab里加一個每月自動清理:
# 每月1號凌晨3點自動清理 0 3 1 * * docker system prune -af >> /var/log/docker-prune.log 2>&1
最后
這些命令基本覆蓋了我的日常80%的Docker操作場景。建議大家收藏備用,用的時候Ctrl+F搜關鍵詞就行。
以上就是2026年Docker常用命令速查表(收藏這一篇就夠了)的詳細內(nèi)容,更多關于Docker常用命令的資料請關注腳本之家其它相關文章!
相關文章
多云環(huán)境下的Docker部署策略實現(xiàn)
在多云環(huán)境下,Docker容器技術為應用程序的部署提供了高度的靈活性和可擴展性,本文就來介紹一下多云環(huán)境下的Docker部署策略實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01
Spring Boot 2.4 新特性之一鍵構建Docker鏡像的過程詳解
這篇文章主要介紹了Spring Boot 2.4 新特性之一鍵構建Docker鏡像的過程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
docker?部署Flink和傳統(tǒng)部署的詳細過程
Flink是一個開源的分布式流處理框架,支持狀態(tài)管理、事件時間、窗口模型等特性,可以通過下載、解壓、配置和啟動來使用,提供了多種運行方式,包括Docker和SQLClient,本文介紹docker部署Flink和傳統(tǒng)部署的詳細過程,感興趣的朋友跟隨小編一起看看吧2025-11-11

