最近部署一些開源專案,補充了一下Docker容器的常用命令:
Docker 是當前最流行的容器化平臺之一,它透過輕量級的虛擬化技術,讓開發者能夠快速構建、部署和管理應用。掌握 Docker 的基礎指令對於有效使用這一工具至關重要。本文將詳細介紹 Docker 的常用命令,幫助你全面瞭解和運用 Docker。
目錄
- Docker 基礎概念
- Docker 映象管理命令
docker build
docker pull
docker push
docker images
docker rmi
- Docker 容器管理命令
docker run
docker ps
docker stop
docker start
docker restart
docker rm
docker exec
docker logs
- Docker 網路管理命令
docker network ls
docker network create
docker network inspect
docker network rm
- Docker 卷管理命令
docker volume ls
docker volume create
docker volume inspect
docker volume rm
- Docker 系統管理命令
docker info
docker version
docker system df
docker system prune
- 其他有用命令
docker inspect
docker tag
docker history
- 總結
Docker 基礎概念
在深入命令之前,瞭解一些 Docker 的基本概念是非常有幫助的:
- 映象(Image):Docker 映象是一個包含應用及其所有依賴的輕量級、獨立、可執行的軟體包。它是容器的藍圖。
- 容器(Container):容器是映象的執行例項,具有獨立的檔案系統、網路和程序空間。
- 倉庫(Repository):用於儲存和分發 Docker 映象的地方,如 Docker Hub。
- Dockerfile:用於定義映象內容的指令碼檔案,包含一系列構建指令。
Docker 映象管理命令
映象管理是 Docker 運維中的核心部分,以下是常用的映象管理命令:
docker build
用於根據 Dockerfile 構建一個新的映象。
語法:
docker build [OPTIONS] PATH | URL | -
示例:
在當前目錄下使用 Dockerfile 構建映象,並命名為 myapp:latest
:
docker build -t myapp:latest .
docker pull
從倉庫中拉取映象到本地。
語法:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
示例:
拉取官方的 Nginx 映象:
docker pull nginx:latest
docker push
將本地映象推送到倉庫。
語法:
docker push [OPTIONS] NAME[:TAG]
示例:
推送本地的 myapp:latest
映象到 Docker Hub:
docker push myusername/myapp:latest
注意:推送前需先登入 Docker Hub,使用
docker login
命令。
docker images
列出本地儲存的所有映象。
語法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
示例:
檢視所有本地映象:
docker images
docker rmi
刪除本地映象。
語法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
示例:
刪除映象 myapp:latest
:
docker rmi myapp:latest
Docker 容器管理命令
管理容器是 Docker 使用中的主要任務,以下是常用的容器管理命令:
docker run
建立並執行一個新的容器。
語法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
示例:
以互動模式執行 Ubuntu 容器,並進入 Bash:
docker run -it ubuntu:latest /bin/bash
docker ps
列出當前執行的容器。
語法:
docker ps [OPTIONS]
示例:
檢視所有正在執行的容器:
docker ps
檢視包括停止的容器:
docker ps -a
docker stop
停止一個或多個執行中的容器。
語法:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
示例:
停止名為 mycontainer
的容器:
docker stop mycontainer
docker start
啟動一個已停止的容器。
語法:
docker start [OPTIONS] CONTAINER [CONTAINER...]
示例:
啟動名為 mycontainer
的容器:
docker start mycontainer
docker restart
重啟一個或多個容器。
語法:
docker restart [OPTIONS] CONTAINER [CONTAINER...]
示例:
重啟名為 mycontainer
的容器:
docker restart mycontainer
docker rm
刪除一個或多個容器。
語法:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
示例:
刪除名為 mycontainer
的容器:
docker rm mycontainer
注意:容器必須停止才能刪除,或者使用
-f
強制刪除。
docker exec
在執行中的容器內執行指定的命令。
語法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
示例:
在 mycontainer
容器內執行 Bash:
docker exec -it mycontainer /bin/bash
docker logs
檢視容器的日誌輸出。
語法:
docker logs [OPTIONS] CONTAINER
示例:
檢視 mycontainer
的日誌:
docker logs mycontainer
Docker 網路管理命令
Docker 提供了靈活的網路配置選項,以下是常用的網路管理命令:
docker network ls
列出所有 Docker 網路。
語法:
docker network ls
示例:
檢視所有網路:
docker network ls
docker network create
建立一個新的 Docker 網路。
語法:
docker network create [OPTIONS] NETWORK
示例:
建立一個名為 mynetwork
的橋接網路:
docker network create mynetwork
docker network inspect
檢視指定網路的詳細資訊。
語法:
docker network inspect [OPTIONS] NETWORK
示例:
檢視 mynetwork
網路的詳細資訊:
docker network inspect mynetwork
docker network rm
刪除一個或多個網路。
語法:
docker network rm NETWORK [NETWORK...]
示例:
刪除 mynetwork
網路:
docker network rm mynetwork
Docker 卷管理命令
Docker 卷用於持久化和管理容器資料,以下是相關命令:
docker volume ls
列出所有卷。
語法:
docker volume ls
示例:
檢視所有卷:
docker volume ls
docker volume create
建立一個新的卷。
語法:
docker volume create [OPTIONS] [VOLUME]
示例:
建立一個名為 myvolume
的卷:
docker volume create myvolume
docker volume inspect
檢視卷的詳細資訊。
語法:
docker volume inspect [OPTIONS] VOLUME [VOLUME...]
示例:
檢視 myvolume
的詳細資訊:
docker volume inspect myvolume
docker volume rm
刪除一個或多個卷。
語法:
docker volume rm [OPTIONS] VOLUME [VOLUME...]
示例:
刪除 myvolume
卷:
docker volume rm myvolume
注意:卷如果正在被容器使用,將無法刪除。
Docker 系統管理命令
這些命令用於獲取 Docker 系統的狀態和進行系統級別的管理。
docker info
顯示 Docker 系統的全面資訊。
語法:
docker info
示例:
檢視 Docker 系統資訊:
docker info
docker version
顯示 Docker 客戶端和伺服器(守護程序)的版本資訊。
語法:
docker version
示例:
檢視 Docker 版本:
docker version
docker system df
顯示 Docker 使用的磁碟空間情況。
語法:
docker system df
示例:
檢視 Docker 磁碟使用情況:
docker system df
docker system prune
清理未使用的 Docker 資料,包括停止的容器、未使用的網路、懸掛的映象和未使用的卷。
語法:
docker system prune [OPTIONS]
示例:
執行全面清理(包括未使用的卷):
docker system prune -a --volumes
注意:此操作會刪除未使用的資料,請謹慎使用。
其他有用命令
除了上述常用命令外,Docker 還提供了一些其他實用的命令:
docker inspect
獲取 Docker 物件(容器、映象、網路、卷等)的詳細資訊。
語法:
docker inspect [OPTIONS] NAME [NAME...]
示例:
檢視 mycontainer
容器的詳細資訊:
docker inspect mycontainer
docker tag
為映象建立一個新的標籤。
語法:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
示例:
將本地 myapp:latest
映象打標籤為 myusername/myapp:v1.0
:
docker tag myapp:latest myusername/myapp:v1.0
docker history
檢視映象的歷史層資訊。
語法:
docker history [OPTIONS] IMAGE
示例:
檢視 myapp:latest
映象的歷史:
docker history myapp:latest