Docker命令搞一下

qunimadeDK發表於2024-10-21

最近部署一些開源專案,補充了一下Docker容器的常用命令:
Docker 是當前最流行的容器化平臺之一,它透過輕量級的虛擬化技術,讓開發者能夠快速構建、部署和管理應用。掌握 Docker 的基礎指令對於有效使用這一工具至關重要。本文將詳細介紹 Docker 的常用命令,幫助你全面瞭解和運用 Docker。

目錄

  1. Docker 基礎概念
  2. Docker 映象管理命令
    • docker build
    • docker pull
    • docker push
    • docker images
    • docker rmi
  3. Docker 容器管理命令
    • docker run
    • docker ps
    • docker stop
    • docker start
    • docker restart
    • docker rm
    • docker exec
    • docker logs
  4. Docker 網路管理命令
    • docker network ls
    • docker network create
    • docker network inspect
    • docker network rm
  5. Docker 卷管理命令
    • docker volume ls
    • docker volume create
    • docker volume inspect
    • docker volume rm
  6. Docker 系統管理命令
    • docker info
    • docker version
    • docker system df
    • docker system prune
  7. 其他有用命令
    • docker inspect
    • docker tag
    • docker history
  8. 總結

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

相關文章