最新!Ubuntu Docker 安裝教程

源自: 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

最佳實踐

  1. 使用官方鏡像:盡量使用Docker Hub上的官方鏡像,以確保安全性和穩定性。

  2. 最小化鏡像大小:使用多階段構建和Alpine基礎鏡像減小鏡像體積。

  3. 使用Docker Compose:對于多容器應用,使用Docker Compose簡化管理。

  4. 定期更新:定期更新Docker及其組件以獲取安全修復和新功能。

  5. 使用數據卷:使用數據卷而不是綁定掛載,以便更好地管理數據。

  6. 設置資源限制:為容器設置CPU和內存限制,防止單個容器占用過多資源。

更多:>>>>大模型/AIGC、學術前沿的知識分享!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72953.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72953.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72953.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html5炫酷3D立體文字效果實現詳解

炫酷3D立體文字效果實現詳解 這里寫目錄標題 炫酷3D立體文字效果實現詳解項目概述技術實現要點1. 基礎布局設置2. 動態背景效果3. 文字漸變效果4. 立體陰影效果5. 懸浮動畫效果 技術難點及解決方案1. 文字漸變動畫2. 立體陰影效果3. 性能優化 瀏覽器兼容性總結 項目概述 在這個…

電腦如何設置幾分鐘后自動關機

摘要:本文提供Windows、macOS和Linux系統設置定時自動關機的詳細方法。 目錄 一、Windows系統設置方法 設置定時關機 取消關機計劃 二、macOS系統設置方法 設置定時關機取消關機計劃 三、Linux系統設置方法 設置定時關機 取消關機計劃 四、注意事項五、擴展&#x…

Android音視頻多媒體開源庫基礎大全

從事音視頻開發工作,需要了解哪些常見的開源庫,從應用到底軟系統,整理了九大類,這里一次幫你總結完。 包含了應用層的MediaRecorder、surfaceView,以及常見音視頻處理庫FFmpeg和OpenCV,還有視頻渲染和音頻…

若依前端框架增刪改查

1.下拉列表根據數據庫加載 這個是用來查詢框 綁定了 change 事件來處理站點選擇變化后的查詢邏輯。 <el-form-item label"站點選擇" prop"stationId" v-has-permi"[ch:m:y]"><el-select v-model"queryParams.stationId" pl…

Java 第十一章 GUI編程(3)

目錄 內部類 內部類定義 內部類的特點 匿名內部類 格式&#xff1a; 內部類的意義 實例 內部類 ● 把類定義在另一個類的內部&#xff0c;該類就被稱為內部類。 ● 如果在類 Outer 的內部再定義一個類 Inner&#xff0c;此時類 Inner 就稱為內部類 &#xff08;或稱為嵌…

Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多變量回歸預測

Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多變量回歸預測 目錄 Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多變量回歸預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多變量回歸預…

3DMAX曲線生成器插件CurveGenerator使用方法

1. 腳本功能簡介 3DMAX曲線生成器插件CurveGenerator是一個用于 3ds Max 的樣條線生成工具&#xff0c;用戶可以通過簡單的UI界面輸入參數&#xff0c;快速生成多條樣條線。每條樣條線的高度值隨機生成&#xff0c;且可以自定義以下參數&#xff1a; 頂點數量&#xff1a;每條…

LiteratureReading:[2023] GPT-4: Technical Report

文章目錄 一、文獻簡明&#xff08;zero&#xff09;二、快速預覽&#xff08;first&#xff09;1、標題分析2、作者介紹3、引用數4、摘要分析&#xff08;1&#xff09;翻譯&#xff08;2&#xff09;分析 5、總結分析&#xff08;1&#xff09;翻譯&#xff08;2&#xff09;…

vm_pwn入門 -- [GHCTF 2025]my_vm

先看基本邏輯 int __fastcall main(int argc, const char **argv, const char **envp) {unsigned __int16 IP; // [rspCh] [rbp-14h] BYREFunsigned __int16 SP; // [rspEh] [rbp-12h] BYREFunsigned __int16 cmd_count; // [rsp10h] [rbp-10h] BYREFunsigned __int16 i; // [r…

CA 機構如何防止中間人攻擊

在現代互聯網中&#xff0c;中間人攻擊&#xff08;Man-in-the-Middle Attack&#xff0c;簡稱 MITM&#xff09;是一種常見的網絡攻擊方式&#xff0c;攻擊者通過攔截和篡改通信雙方的信息&#xff0c;進而竊取敏感數據或執行惡意操作。為了防止中間人攻擊&#xff0c;證書頒發…

Elasticsearch快速上手與深度進階:一站式實戰教程

目錄 1. Elasticsearch 簡介 2. 安裝與啟動 方式 1&#xff1a;Docker 快速安裝&#xff08;推薦&#xff09; 方式 2&#xff1a;手動安裝 3. 基礎操作 3.1 創建索引 3.2 插入文檔 3.3 查詢文檔 3.4 更新文檔 3.5 刪除文檔 4. 高級查詢 4.1 布爾查詢 4.2 范圍查詢…

聞所聞盡:穿透聲音的寂靜,照見生命的本真

在《楞嚴經》的梵音繚繞中&#xff0c;"聞所聞盡"四個字如晨鐘暮鼓&#xff0c;叩擊著每個修行者的心門。這個源自觀世音菩薩耳根圓通法門的核心概念&#xff0c;既是佛門修行的次第指引&#xff0c;更蘊含著東方哲學對生命本質的終極叩問。當我們穿越時空的帷幕&…

回溯法經典練習:組合總和的深度解析與實戰

回溯法經典練習&#xff1a;組合總和的深度解析與實戰 引言 在算法世界里&#xff0c;回溯法&#xff08;Backtracking&#xff09;是解決 組合、排列、子集 等問題的神器。而 “組合總和”&#xff08;Combination Sum&#xff09; 問題&#xff0c;更是回溯算法中的經典代表…

傳感器研習社:Swift Navigation與意法半導體(STMicroelectronics)合作 共同推出端到端GNSS汽車自動駕駛解決方案

自動駕駛系統單純依賴感知傳感器進行定位在遇到惡劣天氣或缺乏車道標線的道路場景時很容易失效。此外&#xff0c;由于激光雷達&#xff08;LiDAR&#xff09;、視覺等傳感器的成本高昂以及將眾多不同組件整合為統一系統的復雜性&#xff0c;都可能增加產品研發成本或延遲產品上…

【人工智能】Ollama 的 API 操作指南:打造個性化大模型服務

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 隨著人工智能技術的飛速發展,大型語言模型(LLM)在自然語言處理領域的應用日益廣泛。然而,傳統的云端模型服務往往面臨數據隱私、成本高…

Linux關機重啟二三事

、、 1概述 故障是高可用組最常接觸的場景&#xff0c;其中包含了進程故障&#xff0c;網絡故障、系統故障&#xff0c;硬件故障。掉電、關機和重啟作為其中最常見的系統故障&#xff0c;具體的細節還是有些許差異的。本文將從操作系統與主板的行為講解三者之間的聯系與區別。…

算法1--兩束求和

題目描述 解題思路 先說一種很容易想到的暴力解法 暴力解法的思路很簡單&#xff0c;就是遍歷數組&#xff0c;對于每一個元素&#xff0c;都去遍歷數組中剩下的元素&#xff0c;判斷是否有兩個元素的和等于目標值&#xff0c;如果有&#xff0c;就返回這兩個元素的下標。 c…

在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和騰訊翻譯插件讓英文網頁顯示中文翻譯

在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和騰訊翻譯插件讓英文網頁顯示中文翻譯 應用——系統工具——終端 suozhangfedora:~$ rpm -aq | grep firefox firefox-131.0.2-1.fc41.x86_64 firefox-langpacks-131.0.2-1.fc41.x86_64 fedora41系統自身安裝有f…

android 接入google 登錄

在 Android 應用中接入 Google 登錄功能,可讓用戶使用他們的 Google 賬號快速登錄應用。以下是詳細的接入步驟和示例代碼: 步驟 1:創建 Google API 項目 訪問 Google API 控制臺,并使用你的 Google 賬號登錄。點擊 “選擇項目”,然后點擊 “新建項目”,按照提示填寫項目…

Redis緩存與數據庫 數據一致性保障

為什么要保證數據一致性 只要使用redis做緩存&#xff0c;就必然存在緩存和DB數據一致性問題。若數據不一致&#xff0c;則業務應用從緩存讀取的數據就不是最新數據&#xff0c;可能導致嚴重錯誤。比如將商品的庫存緩存在Redis&#xff0c;若庫存數量不對&#xff0c;則下單時…