源自: AINLPer(每日干貨分享!!)
編輯: ShuYini
校稿: ShuYini
時間: 2025-3-1
更多:>>>>大模型/AIGC、學術前沿的知識分享!
看到很多部署大模型的時候,都是基于docker安裝部署的。主要Docker是一個開源的應用容器引擎,讓我們可以打包應用以及依賴包到一個可移植的容器中,方便在不同操作系統上運行。Docker容器使應用的部署和擴展變得更加簡單和高效。今天整理了一下docker的安裝教程,供大家參考,比較適合初學者。
docker 前提條件
- 運行Ubuntu系統(推薦Ubuntu 20.04 LTS或更高版本)
- 擁有sudo權限的賬戶
- 聯網狀態
- 至少4GB內存(推薦)
- 64位系統
安裝步驟
1. 更新系統包索引
首先,更新apt包索引并安裝必要的依賴項:
sudo apt update #此命令更新本地包索引,從各個倉庫獲取最新的軟件包列表。這確保您安裝的是最新版本的軟件。
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo apt install
- 安裝軟件包的命令-y
- 自動確認所有提示,無需手動輸入"yes"ca-certificates
- 允許SSL-based應用程序檢查SSL連接的安全性curl
- 用于傳輸數據的工具gnupg
- GNU隱私保護工具,用于加密和簽名lsb-release
- 提供特定于Linux發行版的信息
2. 添加Docker官方GPG密鑰
創建/etc/apt/keyrings
目錄,用于存儲倉庫的GPG密鑰。
sudo mkdir -p /etc/apt/keyrings #`-p`參數確保如果父目錄不存在也會被創建。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
參數說明:
curl -fsSL
- 下載Docker的GPG密鑰-f
- 失敗時不顯示錯誤信息-s
- 靜默模式,不顯示進度條-S
- 顯示錯誤信息-L
- 跟隨重定向
|
- 管道符,將左邊命令的輸出作為右邊命令的輸入sudo gpg --dearmor
- 將ASCII密鑰轉換為二進制格式-o /etc/apt/keyrings/docker.gpg
- 指定輸出文件路徑
3. 設置Docker倉庫
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
參數說明:
echo "..."
- 生成Docker倉庫配置字符串arch=$(dpkg --print-architecture)
- 獲取系統架構(如amd64、arm64等)signed-by=/etc/apt/keyrings/docker.gpg
- 指定用于驗證倉庫的GPG密鑰$(lsb_release -cs)
- 獲取Ubuntu的代號(如focal、jammy等)sudo tee /etc/apt/sources.list.d/docker.list
- 將配置寫入Docker倉庫列表文件> /dev/null
- 抑制輸出
4. 更新包索引并安裝Docker
更新包索引,使系統識別新添加的Docker倉庫。
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
參數說明:
docker-ce
- Docker Community Edition,核心Docker引擎docker-ce-cli
- Docker命令行工具containerd.io
- Docker使用的容器運行時docker-compose-plugin
- Docker Compose插件,用于定義和運行多容器Docker應用
5. 驗證安裝
安裝完成后,可以運行以下命令驗證Docker是否安裝成功,如果一切正常,您將看到一條歡迎消息,表明Docker已成功安裝并可以運行容器。
sudo docker run hello-world
參數說明:
sudo docker run
- 運行Docker容器的命令hello-world
- 一個官方測試鏡像,用于驗證Docker安裝是否成功- 此命令會下載測試鏡像并在容器中運行,顯示一條歡迎消息
6. 配置非root用戶運行Docker(可選但推薦)
默認情況下,只有root用戶和docker組的用戶才能運行Docker命令。如果想在不使用sudo的情況下運行Docker命令,可以將當前用戶添加到docker組。
sudo usermod -aG docker $USER
注意:執行此命令后,需要注銷并重新登錄,或者運行以下命令應用更改:
newgrp docker
Docker基本命令詳解
Docker安裝完成之后,就可以使用了。系統信息、鏡像管理、容器管理、Docker Compose、Docker數據管理等操作命令。
系統信息
docker --version
解釋:顯示Docker版本信息。
docker info
解釋:顯示Docker系統信息,包括運行的容器數量、鏡像數量、存儲驅動等。
鏡像管理
docker images
解釋:列出本地所有鏡像,包括鏡像ID、倉庫、標簽、創建時間和大小。
docker pull [鏡像名稱]:[標簽]
解釋:從Docker Hub或其他倉庫下載鏡像。如果不指定標簽,默認為latest。
docker rmi [鏡像ID或名稱]
解釋:刪除本地鏡像。如果鏡像正在被容器使用,需要先停止并刪除容器。
docker build -t [名稱]:[標簽] [Dockerfile路徑]
解釋:根據Dockerfile構建鏡像。
-t
- 指定鏡像名和標簽
容器管理
docker ps
解釋:列出正在運行的容器。
docker ps -a
解釋:列出所有容器,包括停止的容器。
docker run [選項] [鏡像名稱] [命令]
解釋:創建并啟動容器。常用選項:
-d
- 后臺運行容器-p [主機端口]:[容器端口]
- 端口映射-v [主機路徑]:[容器路徑]
- 卷掛載--name [容器名]
- 指定容器名稱--restart always
- 容器隨Docker啟動-e [環境變量]=[值]
- 設置環境變量
docker start [容器ID或名稱]
解釋:啟動已停止的容器。
docker stop [容器ID或名稱]
解釋:停止正在運行的容器。
docker restart [容器ID或名稱]
解釋:重啟容器。
docker rm [容器ID或名稱]
解釋:刪除容器。使用-f
參數可以強制刪除正在運行的容器。
docker logs [容器ID或名稱]
解釋:查看容器的日志輸出。可以添加-f
參數實時查看日志。
docker exec -it [容器ID或名稱] [命令]
解釋:在運行中的容器中執行命令。
-i
- 交互模式-t
- 分配一個偽終端
Docker Compose
docker compose up
解釋:創建并啟動定義在docker-compose.yml中的所有服務。
-d
- 后臺運行
docker compose down
解釋:停止并刪除定義在docker-compose.yml中的所有服務。
Docker數據管理
數據卷
docker volume create [卷名]
解釋:創建一個命名卷。
docker volume ls
解釋:列出所有卷。
docker volume rm [卷名]
解釋:刪除指定的卷。
Docker網絡
docker network create [網絡名]
解釋:創建一個自定義網絡。
docker network ls
解釋:列出所有網絡。
docker network connect [網絡名] [容器ID或名稱]
解釋:將容器連接到指定網絡。
系統維護
docker system df
解釋:顯示Docker磁盤使用情況。
docker system prune
解釋:清理未使用的Docker資源(停止的容器、未使用的網絡和懸掛的鏡像)。
-a
- 同時刪除所有未使用的鏡像--volumes
- 同時刪除未使用的卷
卸載Docker
如果需要卸載Docker,請使用以下命令:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
解釋:刪除Docker軟件包,但保留鏡像、容器和卷。
sudo rm -rf /var/lib/docker
解釋:刪除Docker的默認數據目錄,包括所有鏡像、容器和卷。
sudo rm -rf /var/lib/containerd
解釋:刪除containerd的數據目錄。
卸載Docker
如果需要卸載Docker,請使用以下命令:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
常見問題和故障排除
1. 權限問題
如果遇到"permission denied"錯誤,可能是因為當前用戶不在docker組中。解決方法:
sudo usermod -aG docker $USER
然后注銷并重新登錄。
2. 容器無法聯網
檢查UFW(Uncomplicated Firewall)設置:
sudo ufw status
如果UFW已啟用,允許Docker端口:
sudo ufw allow 2375/tcp
sudo ufw allow 2376/tcp
3. 磁盤空間不足
清理未使用的資源:
docker system prune -a
4. Docker服務無法啟動
檢查Docker服務狀態:
sudo systemctl status docker
如果服務未運行,嘗試啟動:
sudo systemctl start docker
設置開機自啟:
sudo systemctl enable docker
最佳實踐
-
使用官方鏡像:盡量使用Docker Hub上的官方鏡像,以確保安全性和穩定性。
-
最小化鏡像大小:使用多階段構建和Alpine基礎鏡像減小鏡像體積。
-
使用Docker Compose:對于多容器應用,使用Docker Compose簡化管理。
-
定期更新:定期更新Docker及其組件以獲取安全修復和新功能。
-
使用數據卷:使用數據卷而不是綁定掛載,以便更好地管理數據。
-
設置資源限制:為容器設置CPU和內存限制,防止單個容器占用過多資源。
更多:>>>>大模型/AIGC、學術前沿的知識分享!