Docker:一、安裝與卸載、配置阿里云加速器(Ubuntu)

目錄

    • 🍁安裝docker
      • 🌲1、環境準備
      • 🌲2、安裝docker Engine
        • 🧊1、卸載舊版、任何沖突的包
        • 🧊2、使用存儲庫安裝
        • 🧊3、安裝 Docker 包。
        • 🧊4、查詢是否安裝成功
        • 🧊5、運行`hello-world`鏡像
        • 🧊6、查看下載的鏡像
      • 🌲3、卸載docker Engine
      • 🥦配置加速器
      • 🥦docker Engine 和 docker Desktop的區別

🍁安裝docker

🌲1、環境準備

1、使用Linux、可以使用虛擬機或者阿里云服務器(需要會一點Linux基礎)

2、查看使用的環境信息:cat /etc/os-release

# 查看系統內核
beihai@beihai-pc:~/桌面$ uname -r
6.2.0-39-generic# 查看系統版本
beihai@beihai-pc:~/桌面$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

🌲2、安裝docker Engine

!!!我們這里步驟安裝的是docker Engine,不是docker Desktop【關于兩者區別,文末會拓展】!!!

根據官方文檔提示安裝對應系統的docker:https://docs.docker.com/
在這里插入圖片描述
在這里插入圖片描述
根據官方文檔,得出安裝步驟【Ubuntu 22.04.3 LTS版本、不同版本根據上圖尋找不同操作文檔】:

🧊1、卸載舊版、任何沖突的包

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

beihai@beihai-pc:~/桌面$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
[sudo] beihai 的密碼: 
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹... 完成
正在讀取狀態信息... 完成                 
軟件包 docker.io 未安裝,所以不會被卸載
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 280 個軟件包未被升級。
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹... 完成
正在讀取狀態信息... 完成                 
軟件包 docker-doc 未安裝,所以不會被卸載
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 280 個軟件包未被升級。
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹... 完成
正在讀取狀態信息... 完成                 
軟件包 docker-compose 未安裝,所以不會被卸載
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 280 個軟件包未被升級。
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹... 完成
正在讀取狀態信息... 完成                 
軟件包 docker-compose-v2 未安裝,所以不會被卸載
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 280 個軟件包未被升級。
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹... 完成
正在讀取狀態信息... 完成                 
軟件包 podman-docker 未安裝,所以不會被卸載
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 280 個軟件包未被升級。
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹... 完成
正在讀取狀態信息... 完成                 
軟件包 containerd 未安裝,所以不會被卸載
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 280 個軟件包未被升級。
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹... 完成
正在讀取狀態信息... 完成                 
軟件包 runc 未安裝,所以不會被卸載
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 280 個軟件包未被升級。
🧊2、使用存儲庫安裝
# 添加Docker的官方GPG密鑰:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc#將存儲庫添加到 Apt源(這里使用默認鏡像【國外鏡像】):
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
😎代碼指令解析:
# 1、更新 apt 包索引(更新本地包索引,使系統能夠獲取最新的包信息,包括最新的版本和依賴關系。)
sudo apt-get update#2、安裝必要的軟件包
#(安裝 ca-certificates 和 curl。ca-certificates 包含了系統的受信任根證書,用于驗證 SSL 證書。curl 是一個命令行工具,用于從 URL 獲取數據。)
sudo apt-get install ca-certificates curl#3、創建 /etc/apt/keyrings 目錄
#(創建 /etc/apt/keyrings 目錄,用于存放 GPG 密鑰文件。-m 0755 指定了新目錄的權限,表示目錄所有者有讀、寫、執行權限,組和其他用戶有讀和執行權限。-d 表示創建目錄。)
sudo install -m 0755 -d /etc/apt/keyrings#4、下載 Docker 官方 GPG 密鑰(使用 curl 從 Docker 官方網站下載 GPG 密鑰文件,并將其保存到 /etc/apt/keyrings/docker.asc。選項 -fsSL 的含義是:
# -f:失敗時不輸出錯誤信息。
# -s:靜默模式,不輸出進度信息。
# -S:靜默模式下顯示錯誤信息。
# -L:如果目標是一個重定向 URL,則跟隨重定向。)
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc#5、修改密鑰文件的權限
#(將密鑰文件 /etc/apt/keyrings/docker.asc 的權限設置為所有用戶可讀 (a+r),確保 apt 軟件包管理器能夠讀取這個文件。)
sudo chmod a+r /etc/apt/keyrings/docker.asc#6、添加 Docker 存儲庫
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null#這個命令分為幾部分:
# ---1
# echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable":# echo 用于輸出一行文本,包含存儲庫的定義。
# deb 表示這是一個二進制軟件包存儲庫。
# [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] 指定了存儲庫的架構和用于簽名的 GPG 密鑰文件。
# arch=$(dpkg --print-architecture) 動態獲取系統的架構(例如 amd64)。
# signed-by=/etc/apt/keyrings/docker.asc 指定了用于驗證該存儲庫的軟件包的 GPG 密鑰文件。
# https://download.docker.com/linux/ubuntu 是存儲庫的 URL。
# $(. /etc/os-release && echo "$VERSION_CODENAME") 動態獲取當前操作系統的版本代號(例如 focal for Ubuntu 20.04)。這是通過讀取 /etc/os-release 文件來實現的。
#stable 指定了存儲庫的分支(穩定版)。
#---2
# | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null:
# | 將前面的 echo 命令的輸出傳遞給 tee 命令。
#sudo tee /etc/apt/sources.list.d/docker.list 以 sudo 權限將輸出寫入到 /etc/apt/sources.list.d/docker.list 文件中。
# > /dev/null 表示將 tee 命令的標準輸出重定向到 /dev/null,避免在終端中顯示冗余信息。#7、更新本地包索引
sudo apt-get update#這條命令會更新本地的包索引,包含剛剛添加的 Docker 存儲庫中的包信息。這樣系統就知道可以從 Docker 存儲庫中安裝哪些軟件包以及它們的最新版本。
🧊3、安裝 Docker 包。

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
(docker-ce 社區版、docker-ee 企業版)

🧊4、查詢是否安裝成功
命令: docker versionbeihai@beihai-pc:~/桌面$ docker version
Client: Docker Engine - CommunityVersion:           26.1.3API version:       1.45Go version:        go1.21.10Git commit:        b72abbbBuilt:             Thu May 16 08:33:29 2024OS/Arch:           linux/amd64Context:           default
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/version": dial unix /var/run/docker.sock: connect: permission denied
🧊5、運行hello-world鏡像
命令: sudo docker run hello-world

在這里插入圖片描述

🧊6、查看下載的鏡像
命令: docker imagesbeihai@beihai-pc:~/桌面$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    d2c94e258dcb   13 months ago   13.3kB

!!! 如果查看鏡像失敗
報:permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head “http://%2Fvar%2Frun%2Fdocker.sock/_ping”: dial unix /var/run/docker.sock: connect: permission denied
是因為當前用戶沒有權限訪問 Docker 守護進程的 Unix 套接字。你可以通過以下方法和步驟解決這個問題:

方法一:使用 sudo 運行,命令:sudo docker images

方法二:

  1. 添加當前用戶到 Docker 組。 sudo usermod -aG docker $USER
  2. 重新啟動計算機,以使組更改生效。
    如果不想注銷或重啟,可以通過以下命令啟動一個新的 shell 會話:newgrp docker【但是這樣是只對當前會話有效,所以為了長遠發展,還是通過重新啟動計算機方法】

至此,docker Engine安裝成功!

🌲3、卸載docker Engine

1、卸載 Docker Engine、CLI、containerd 和 Docker Compose 包:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2、主機上的映像、容器、卷或自定義配置文件 不會自動刪除。要刪除所有映像、容器和卷,請執行以下操作:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

3、您必須手動刪除任何已編輯的配置文件。

🥦配置加速器

我們前面默認的鏡像拉取地址是國外的,速度比較慢。現在想配置國內鏡像(阿里云鏡像)來提高docker鏡像的拉取速度。
1、前往阿里云容器鏡像服務:https://cr.console.aliyun.com/cn-hangzhou/instances 獲取加速鏡像
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
創建成功后,退回。點擊【鏡像工具 -》 鏡像加速器】
在這里插入圖片描述
根據自己服務器型號,自己復制對應的命令
在這里插入圖片描述

2、 執行上面復制的命令,配置加速器


命令:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<自己的鏡像加速器>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker==============指令解析==============
sudo mkdir -p /etc/docker解析:使用 mkdir 創建 /etc/docker 目錄。選項 -p 的作用是如果父目錄不存在則一并創建。sudo 是用來以超級用戶(root)權限執行該命令,因為 /etc 目錄通常需要超級用戶權限。
----------------------------
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<自己的鏡像加速器>.mirror.aliyuncs.com"]
}
EOF解析:這個命令使用 tee 命令將多行字符串寫入到 /etc/docker/daemon.json 文件中。sudo tee /etc/docker/daemon.json:tee 命令會將標準輸入的內容寫入到指定的文件中。sudo 是用來以超級用戶權限執行該命令,以確保可以寫入到 /etc/docker 目錄下。<<-'EOF':表示開始一個多行字符串,直到遇到一個單獨的 EOF(或其他標識符)。<<- 的作用是支持行首的制表符縮進,這樣在腳本中可以更美觀地格式化內容。{ "registry-mirrors": ["https://<自己的鏡像加速器>.mirror.aliyuncs.com"] }:這部分內容是實際寫入到 daemon.json 文件中的 JSON 配置EOF:表示多行字符串的結束。
----------------------------
sudo systemctl daemon-reload解析:告訴 systemd(系統和服務管理器)重新加載配置文件。這是因為我們更改了 Docker 的配置文件,需要通知 systemd 重新讀取這些配置。
----------------------------
sudo systemctl restart docker解析:重啟 Docker 服務,以應用新的配置。sudo 是用來以超級用戶權限執行該命令,因為啟動和停止系統服務通常需要超級用戶權限。

3、 查詢是否配置成功

命令 :docker info你應該看到類似以下輸出,包含 Registry Mirrors 部分:
Registry Mirrors:https://<自己的鏡像加速器>.mirror.aliyuncs.com/

🥦docker Engine 和 docker Desktop的區別

Docker Desktop 和 Docker Engine 是 Docker 提供的兩種不同的產品,它們的安裝和使用方式有所不同,適用于不同的使用場景。

Docker Desktop
Docker Desktop 是一個面向桌面操作系統(如 Windows 和 macOS)的應用程序,它包含了 Docker Engine、Docker CLI 客戶端、Docker Compose、Kubernetes 以及其他一些工具。Docker Desktop 提供了一個完整的 Docker 開發環境,易于安裝和使用,特別適合開發人員和個人用戶。

特點:

  • 一體化安裝:包括 Docker Engine、CLI、Compose 等,提供開箱即用的體驗。
  • GUI 支持:提供圖形用戶界面,可以通過 GUI 來管理容器和鏡像。
  • 跨平臺:支持 Windows 和 macOS,簡化了不同操作系統上的 Docker 使用。
  • 集成工具:內置了 Kubernetes 和其他開發工具,方便開發者進行本地開發和測試。

Docker Engine
Docker Engine 是一個適用于 Linux 操作系統的容器運行時,主要用于生產環境中的容器化應用。它是 Docker 技術的核心組件,負責構建、運行和管理容器。Docker Engine 通常在服務器環境中使用,并通過命令行進行管理。

特點:

  • 輕量級:僅包括核心組件,適合服務器和生產環境部署。
  • 高性能:設計用于高效地管理容器和鏡像。
  • 命令行管理:主要通過命令行接口(CLI)進行操作,沒有圖形界面。

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

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

相關文章

柯橋小語種學校成人生活口語學習|西班牙語中H為什么不發音…

01 H en el alfabeto espaol 西語字母表中的h 字母H是唯一一個在標準西班牙語中不再代表任何音素的字母。盡管在它單獨出現時被叫做HACHE&#xff0c;但在大多數單詞拼寫中&#xff0c;它只是一個沒有聲音對應關系的字母&#xff0c;因此RAE稱其為“無聲的H”&#xff08;hac…

機器學習——無監督學習(k-means算法)

1、K-Means聚類算法 K表示超參數個數&#xff0c;如分成幾個類別&#xff0c;K值就取多少。若無需求&#xff0c;可使用網格搜索找到最佳的K。 步驟&#xff1a; 1、隨機設置K個特征空間內的點作為初始聚類中心&#xff1b; 2、對于其他每個點計算到K個中心的距離&#xff0c;…

蕎面打造的甜蜜魔法:甜甜圈

食家巷蕎面甜甜圈是一款具有特色的美食。它以蕎面為主要原料&#xff0c;相較于普通面粉&#xff0c;蕎面具有更高的營養價值&#xff0c;富含膳食纖維、維生素和礦物質。蕎面甜甜圈的口感可能會更加扎實和有嚼勁&#xff0c;同時帶著蕎面特有的谷物香氣。在制作過程中&#xf…

FlutterWeb渲染模式及提速

背景 在使用Flutter Web開發的網站過程中&#xff0c;常常會遇到不同瀏覽器之間的兼容性問題。例如&#xff0c;在Google瀏覽器中動畫和交互都非常流暢&#xff0c;但在360瀏覽器中卻會出現卡頓現象&#xff1b;在Google瀏覽器中動態設置圖標顏色正常顯示&#xff0c;而在Safa…

8-阿里云服務器 ECS配置R及Studio Server

目錄 查看服務器系統 關于linux系統 安裝R 1,查看官方教程 2,安裝R ①修改sources.list文件 ②安裝R:點擊Y ③更新最新版R ④安裝 RStudio(省略此步驟) ?編輯 ⑤安裝 RStudio Server 登錄rstudio-server 1,添加賬號(root賬號不能登錄) 2,開啟8787端口訪…

SpringBoot+OSS實現文件上傳

創建spring boot項目 pom依賴 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version></dependency><dependency><groupId>javax.xml.bind</groupI…

SpringBoot項目練習

文章目錄 SpringBootVue后臺管理系統所需軟件下載、安裝、版本查詢Vue搭建一個簡單的Vue項目 Spring項目1項目架構 SpringBootVue后臺管理系統 學習視頻&#xff1a; https://www.bilibili.com/video/BV1U44y1W77D/?spm_id_from333.337.search-card.all.click&vd_sourcec…

深入Laravel事件系統:創建與使用事件的指南

Laravel的事件系統是一種強大的機制&#xff0c;它允許你將應用程序的行為封裝成事件&#xff0c;然后在適當的時候觸發這些事件。這不僅有助于代碼的解耦&#xff0c;還提高了應用程序的可維護性和可擴展性。本文將詳細介紹如何在Laravel中創建和使用事件&#xff0c;包括事件…

2024年7月6日隨筆

期末考試全部結束了&#xff0c;這個月是真累啊&#xff0c;一堆事&#xff0c;好在都熬過來了&#xff0c;上次參加的那個碼題杯自己居然進國賽了&#xff0c;我看了一下職業賽道和本科賽道的題&#xff0c;本科賽道的感覺要難上不少&#xff0c;比賽時間是一周后&#xff0c;…

Pytorch(筆記7損失函數類型)

前言 損失函數&#xff08;Loss Function&#xff09;&#xff1a;是定義在單個樣本上的&#xff0c;是指一個樣本的誤差&#xff0c;度量模型一次預測的好壞。 代價函數&#xff08;Cost Function&#xff09;成本函數經驗風險&#xff1a;是定義在整個訓練集上的&#xff0c…

集成學習(三)GBDT 梯度提升樹

前面學習了&#xff1a;集成學習&#xff08;二&#xff09;Boosting-CSDN博客 梯度提升樹&#xff1a;GBDT-Gradient Boosting Decision Tree 一、介紹 作為當代眾多經典算法的基礎&#xff0c;GBDT的求解過程可謂十分精妙&#xff0c;它不僅開創性地舍棄了使用原始標簽進行…

virtualbox窗口和win10窗口的切換

1、問題&#xff1a; 從windows切換到虛擬機可以用快捷鍵 ALTTAB&#xff0c;但是從虛擬機到windows使用 ALTTAB 無法成功切換 2、解決方法&#xff1a; 按下圖操作 按上面步驟設置之后&#xff0c;每次要從虛擬機窗口切換到windows窗口 只需要先按 CtrlAlt 跳出虛擬機窗口&…

【已解決】“import ... =“ 只能在 TypeScript 文件中使用

現象 在使用 import 語法的時候&#xff0c;代碼報紅&#xff0c;提示&#xff1a;“import ... “ 只能在 TypeScript 文件中使用 原因 代碼被 VSCode 解析成 TypeScript 語法 解決方案&#xff1a; 關閉 JavaScript 的驗證啟用即可。 mac 快捷方式&#xff1a;comman s…

微機原理與單片機 知識體系梳理

單片機筆記分享 我個人感覺單片機要記的東西很多&#xff0c;也很瑣碎&#xff0c;特別是一些位、寄存器以及相關作用等&#xff0c;非常難以記憶。因此復習時將知識點整理在了一起做成思維導圖&#xff0c;希望對大家有所幫助。內容不是很多&#xff0c;可能有些沒覆蓋全&…

vue-tabs標簽頁引入其他頁面

tabs頁面 <template> <div class"app-container"> <el-tabs v-model"activeName" type"card" tab-click"handleClick"> <el-tab-pane label"套餐用戶列表" name"first"> <user-list r…

VMware CentOS7 Linux 網絡配置

本文主要描述VMware虛擬機的網絡配置。 如上所示&#xff0c;在CentOS Linux虛擬機中設置網絡連接使用橋接模式&#xff0c;該模式對接主機物理網絡&#xff0c;直接由主機的物理網絡的DHCP服務器動態分配IP地址&#xff0c;或者在CentOS Linux的操作系統的網絡配置中設置靜態的…

HACCP體系認證:守護食品安全的黃金標準

在食品生產過程中&#xff0c;食品安全始終是重中之重。為了確保食品的安全性和質量&#xff0c;越來越多的企業開始采用HACCP&#xff08;危害分析關鍵控制點&#xff09;體系認證。這個體系不僅能幫助企業預防食品安全問題&#xff0c;還能顯著提升產品質量和市場競爭力。 HA…

android新聞app(二)

新聞詳細頁&#xff1a; 歷史瀏覽記錄SQList&#xff1a; 分類&#xff1a; 歷史瀏覽記錄主體UI和詳細&#xff1a; 側邊欄&#xff1a; 參考&#xff1a;浩宇開發

如何給gitlab其他訪問者創建賬號并增加權限

嗨&#xff0c;今天創建了項目之后&#xff0c;我想把項目鏈接發送給其他人&#xff0c;讓他下載這個項目&#xff0c;結果發現對方打開顯示登錄的界面&#xff0c;沒錯&#xff0c;他要想使用這個git下載項目&#xff0c;首先他的有一個git賬號 接下來我找有權限的相關人員給他…

網絡“ping不通”,如何排查和解決呢?

網絡問題往往復雜且難以預測&#xff0c;其中“ping不通”是常見的網絡故障之一。 1. 確認問題現象 首先&#xff0c;明確問題是完全無法ping通(無響應)還是ping通但有高延遲或丟包。這有助于縮小問題范圍。 2. 本地檢查 網絡接口狀態&#xff1a;使用ifconfig(Linux)或ipc…