20 個 Docker 基本命令,讓你成為更好的開發(fā)者
Docker 已成為現(xiàn)代開發(fā)和運維流程中的核心工具。無論是在開發(fā)、測試,還是生產(chǎn)環(huán)境,熟練掌握 Docker 命令可以極大提升開發(fā)效率,幫助你高效管理容器化應用。本文將介紹 20 個常用的 Docker 命令,讓你成為容器管理的高手。
1. docker run —— 啟動容器
docker run 是 Docker 中最常用的命令之一,用于從鏡像啟動一個新容器。你可以通過不同的選項自定義容器的行為。
docker run -it ubuntu bash
常用選項:
- -it :以交互模式啟動容器,并連接到終端。
- --name :為容器指定一個自定義名稱,方便管理。
- -d :以后臺(分離)模式運行容器,適合生產(chǎn)環(huán)境。
實戰(zhàn)案例:
啟動一個 Ubuntu 容器并進入 Bash 終端,執(zhí)行交互式命令。
2. docker ps —— 查看容器狀態(tài)
- docker ps:列出當前正在運行的容器。
- docker ps -a:列出所有容器,包括已停止的容器。
docker ps -a
用途:
- docker ps 適用于查看當前正在運行的容器。
- docker ps -a 則可以查看所有容器,包括歷史記錄,方便調試和管理。
3. docker images —— 查看本地鏡像
此命令列出當前 Docker 主機上存儲的所有鏡像。
docker images
用途:
- 顯示鏡像的名稱、標簽、ID 和創(chuàng)建時間。
- 使用 docker image prune 可以清理未使用的鏡像,釋放磁盤空間。
4. docker pull —— 下載鏡像
docker pull 用于從 Docker Hub 或私有鏡像倉庫下載鏡像。
docker pull nginx
用途:
- 下載官方鏡像或自定義鏡像,支持 Docker Hub 和私有倉庫。
5. docker build —— 從 Dockerfile 構建鏡像
使用 docker build 命令,根據(jù) Dockerfile 文件構建鏡像。
docker build -t my-app .
示例 Dockerfile 配置:
FROM node:14
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "server.js"]
EXPOSE 3000
用途:
- 通過編寫 Dockerfile 定義應用環(huán)境和構建步驟,使用 docker build 構建鏡像。
6. docker exec —— 在容器內執(zhí)行命令
使用 docker exec 在運行中的容器內執(zhí)行命令。
docker exec -it container_id bash
用途:
- 進入容器并執(zhí)行命令,適合調試和交互式操作。
7. docker stop/start/restart —— 啟動與停止容器
說明:
- docker stop:停止一個運行中的容器。
- docker start:啟動已停止的容器。
- docker restart:啟動已停止的容器。
docker stop container_id
docker start container_id
docker restart container_id
用途:
- docker stop 用于停止容器,docker start 則用于重啟已停止的容器,適合在開發(fā)過程中頻繁操作。
8. docker rm —— 刪除容器
刪除已停止的容器以釋放資源。
docker rm container_id
用途:
- 刪除不再需要的容器,保持系統(tǒng)清潔。使用 docker rm -f container_id 可以強制刪除正在運行的容器。
9. docker rmi —— 刪除鏡像
刪除本地鏡像,釋放存儲空間。
docker rmi image_id
用途:
- 清理不再使用的鏡像,避免浪費磁盤空間。
10. docker logs —— 查看容器日志
查看容器的輸出日志,幫助調試應用。
docker logs container_id
用途:
- 通過容器日志查看運行錯誤和狀態(tài),快速定位問題。
11. docker network ls —— 查看網(wǎng)絡配置
列出 Docker 主機上的所有網(wǎng)絡。
docker network ls
用途:
- 管理容器之間的網(wǎng)絡通信,幫助你查看和管理 Docker 網(wǎng)絡配置。
12. docker-compose up/down —— 管理多容器應用
docker-compose 是管理和啟動多個容器應用的工具。
docker compose up -d
docker compose down
docker-compose.yml 示例配置:
services:
web:
image:nginx
ports:
-"8080:80"
app:
build:.
volumes:
-.:/app
ports:
-"3000:3000"
用途:
- docker-compose 是處理多容器應用的利器,docker-compose up 啟動所有容器,docker-compose down 停止并刪除容器。
13. docker volume ls —— 查看卷
列出所有數(shù)據(jù)卷,這些卷用于存儲容器的數(shù)據(jù)。
docker volume ls
用途:
- 管理和查看容器的數(shù)據(jù)存儲,保證數(shù)據(jù)的持久性。
14. docker inspect —— 查看容器或鏡像的詳細信息
獲取容器或鏡像的詳細配置信息,幫助調試和故障排除。
docker inspect container_id
用途:
- 深入分析容器或鏡像的配置,查找問題的根源。
15. docker stats —— 查看容器的實時資源使用
實時查看所有運行中的容器的 CPU、內存、網(wǎng)絡等資源使用情況。
docker stats
用途:
- 監(jiān)控容器資源消耗,幫助優(yōu)化性能和資源分配。
16. docker update —— 動態(tài)更新容器資源限制
在不重啟容器的情況下調整容器的資源限制。
docker update --cpus 2 --memory 1g <container_name>
用途:
- 根據(jù)需要動態(tài)調整容器的資源,幫助提升容器性能。
17. docker commit —— 創(chuàng)建鏡像
docker commit 命令允許你將容器的當前狀態(tài)保存為一個新的鏡像。適用于在容器中進行配置更改或安裝軟件后生成鏡像。
docker commit container_id new_image_name
用途:
- 將容器的當前狀態(tài)保存為一個鏡像,方便以后重新部署相同環(huán)境。
18. docker cp —— 復制文件或目錄
docker cp 用于在容器和主機之間復制文件或目錄。
docker cp container_id:/path/to/file /path/on/host
用途:
- 復制容器內部的文件到主機,或者將主機文件復制到容器中,適合快速文件傳輸。
19. docker save —— 保存鏡像為 tar 包
docker save 將鏡像保存為 tar 包,方便鏡像的備份和傳輸。
docker save -o my_image.tar image_name
用途:
- 將鏡像保存為 tar 文件,便于傳輸和備份??梢酝ㄟ^ docker load 恢復鏡像。
20. docker load —— 從 tar 包加載鏡像
docker load 用于從 tar 包中加載鏡像,恢復已保存的鏡像。
docker load -i my_image.tar
用途:
- 恢復通過 docker save 保存的鏡像文件,適合離線部署和備份恢復。
其他建議
- 定期清理未使用的資源:使用 docker system prune 清理未使用的容器、網(wǎng)絡、鏡像和數(shù)據(jù)卷,保持系統(tǒng)整潔。
- 查看命令幫助信息:使用 docker command --help 查看每個命令的詳細幫助,了解更多選項和用法。
- 命名規(guī)范:為容器和鏡像使用有意義的名稱,便于管理和調試。
通過掌握這些基本命令,你將能大幅提升 Docker 使用效率,更好地管理容器和應用。隨著你對 Docker 的深入了解,也能探索更多高級功能,進一步優(yōu)化容器化應用的性能和穩(wěn)定性。