在Ubuntu?Server?22.04上安裝?Docker的詳細(xì)步驟記錄
前言
本文檔詳細(xì)記錄了在 Ubuntu Server 22.04 上安裝 Docker 的完整過(guò)程,包括解決過(guò)程中遇到的問(wèn)題。希望能對(duì)讀者有所幫助。
安裝過(guò)程,重點(diǎn)需要看官方文檔。https://docs.docker.com/engine/install/ubuntu/
步驟 1:卸載沖突的軟件包
在安裝 Docker Engine 之前,您需要卸載所有有沖突的軟件包。發(fā)行版維護(hù)者在 APT 中提供了 Docker 軟件包的非官方發(fā)行版。您必須先卸載這些軟件包,然后才能安裝 Docker Engine 的正式版本。
要卸載的非官方軟件包包括:
- docker.io
- docker-compose
- docker-compose-v2
- docker-doc
- podman-docker
此外,Docker Engine 依賴于 containerd
和 runc
。Docker Engine 將這些依賴項(xiàng)捆綁為一個(gè)包:containerd.io
。如果您之前安裝了 containerd
或 runc
,請(qǐng)卸載它們以避免與 Docker Engine 捆綁的版本發(fā)生沖突。
運(yùn)行以下命令來(lái)卸載所有沖突的包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-get
可能會(huì)報(bào)告您沒(méi)有安裝這些包。
注意:卸載 Docker 時(shí),不會(huì)自動(dòng)刪除存儲(chǔ)在 /var/lib/docker/
中的圖像、容器、卷和網(wǎng)絡(luò)。如果您想從全新安裝開(kāi)始,并且希望清理所有現(xiàn)有數(shù)據(jù),請(qǐng)閱讀 卸載 Docker Engine 部分。
步驟 2:更新系統(tǒng)軟件包
首先,更新系統(tǒng)中的現(xiàn)有軟件包:
sudo apt update
步驟 3:安裝依賴包
安裝必要的依賴包,這些包用于通過(guò) HTTPS 獲取軟件倉(cāng)庫(kù):
sudo apt install apt-transport-https ca-certificates curl software-properties-common
步驟 4:添加 Docker 中科大 GPG 密鑰
為了確保下載的 Docker 軟件包的真實(shí)性和完整性,我們需要添加 Docker 的 GPG 密鑰:
sudo mkdir -p /etc/apt/keyrings sudo curl -fsSL http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
可能的問(wèn)題
無(wú)法下載 GPG 密鑰:
- 錯(cuò)誤信息:
curl: (6) Could not resolve host: mirrors.ustc.edu.cn
- 解決方案:在網(wǎng)上搜索其他鏡像站點(diǎn)。參考連接:https://blog.csdn.net/m0_46471328/article/details/138043873
背景知識(shí):GPG 密鑰用于驗(yàn)證軟件包的完整性和真實(shí)性,確保下載的軟件包沒(méi)有被篡改。
- 錯(cuò)誤信息:
步驟 5:添加 Docker 中科大鏡像穩(wěn)定版軟件源
我們使用中科大的鏡像源來(lái)加快下載速度:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
可能的問(wèn)題
鏡像源添加失敗:
- 錯(cuò)誤信息:
bash: /etc/apt/sources.list.d/docker.list: Permission denied
- 解決方案:確保使用
sudo
運(yùn)行命令以獲得必要的權(quán)限。
背景知識(shí):軟件源是存儲(chǔ)軟件包的服務(wù)器地址,添加 Docker 的中科大鏡像源可以加快下載速度,并提高可靠性。
- 錯(cuò)誤信息:
步驟 6:再次更新軟件包
添加新的 Docker 軟件源后,再次更新系統(tǒng)中的軟件包索引:
sudo apt update
可能的問(wèn)題
更新失敗:
- 錯(cuò)誤信息:
Failed to fetch http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/dists/focal/stable/binary-amd64/Packages 404 Not Found
- 解決方案:檢查
sources.list.d/docker.list
文件中的鏡像源地址是否正確,并確認(rèn)中科大鏡像源可用。
背景知識(shí):更新軟件包索引是為了讓系統(tǒng)知道最新的軟件包信息,包括新添加的軟件源中的包。
- 錯(cuò)誤信息:
步驟 7:安裝最新版本的 Docker
安裝 Docker 及其依賴包:
sudo apt install docker-ce docker-ce-cli containerd.io
可能的問(wèn)題
安裝失敗:
- 錯(cuò)誤信息:
E: Unable to locate package docker-ce
- 解決方案:確保之前步驟中的鏡像源已正確添加并更新了軟件包索引。
背景知識(shí):Docker 是一個(gè)開(kāi)源的平臺(tái),用于開(kāi)發(fā)、交付和運(yùn)行應(yīng)用程序。它將應(yīng)用程序及其依賴項(xiàng)打包到一個(gè)標(biāo)準(zhǔn)化的單元中,稱為容器。
- 錯(cuò)誤信息:
步驟 8:配置 Docker 使用鏡像加速器(hub)
由于國(guó)內(nèi)訪問(wèn) Docker Hub 可能會(huì)有速度和連接問(wèn)題,我們配置 Docker 使用騰訊云的鏡像加速器:
sudo mkdir -p /etc/docker echo '{ "registry-mirrors": ["https://ccr.ccs.tencentyun.com"] }' | sudo tee /etc/docker/daemon.json > /dev/null
可能的問(wèn)題
無(wú)法訪問(wèn)鏡像加速器:
- 錯(cuò)誤信息:
dial tcp: lookup ccr.ccs.tencentyun.com on 127.0.0.53:53: no such host
- 解決方案:確保配置的鏡像加速器地址正確并可訪問(wèn),可能需要更換其他地址。地址 127.0.0.53:53 是一個(gè)本地 DNS 緩存服務(wù),通常是由系統(tǒng)的 systemd-resolved 服務(wù)提供的。
背景知識(shí):鏡像加速器可以提高從 Docker Hub 拉取鏡像的速度,特別是在國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境下。
- 錯(cuò)誤信息:
步驟 9:重新啟動(dòng) Docker 服務(wù)
使配置生效,重新啟動(dòng) Docker 服務(wù):
sudo systemctl daemon-reload sudo systemctl restart docker
步驟 10:驗(yàn)證 Docker 安裝
運(yùn)行一個(gè)簡(jiǎn)單的 Docker 容器來(lái)驗(yàn)證安裝是否成功:
sudo docker run hello-world
可能的問(wèn)題
無(wú)法訪問(wèn) Docker Hub:
- 錯(cuò)誤信息:
denied: requested access to the resource is denied unauthorized: authentication required
- 解決方案:通過(guò)以下命令登錄 Docker Hub:
sudo docker login
按照提示輸入 Docker Hub 用戶名和密碼即可。
- 錯(cuò)誤信息:
網(wǎng)絡(luò)連接問(wèn)題:
- 錯(cuò)誤信息:
dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: no such host
- 解決方案:配置鏡像加速器并重啟 Docker 服務(wù)后,再次嘗試?yán)$R像。
背景知識(shí):
hello-world
鏡像是一個(gè)非常小的鏡像,用于驗(yàn)證 Docker 是否正常工作。- 錯(cuò)誤信息:
實(shí)時(shí)查看 Docker 服務(wù)日志
你可以使用以下命令實(shí)時(shí)查看 Docker 服務(wù)的日志:
sudo journalctl -u docker.service -f
這個(gè)命令的作用是:
sudo
:以超級(jí)用戶權(quán)限運(yùn)行命令。journalctl
:查看系統(tǒng)日志的命令。-u docker.service
:指定查看 Docker 服務(wù)的日志。-f
:實(shí)時(shí)查看日志輸出,類似于tail -f
。
附加資源
總結(jié)
通過(guò)上述步驟,我成功在 Ubuntu Server 22.04 上安裝并配置了 Docker。主要就是鏡像地址問(wèn)題,通過(guò)調(diào)整配置文件和更換鏡像源,我順利解決了這些問(wèn)題。希望你也一樣。
到此這篇關(guān)于在Ubuntu Server 22.04上安裝 Docker的文章就介紹到這了,更多相關(guān)Ubuntu Server安裝Docker步驟內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Ubuntu?22.04?服務(wù)器安裝部署(nginx+postgresql)
- 安裝Ubuntu和ssh遠(yuǎn)程連接的設(shè)置方式
- Ubuntu安裝配置MySQL、Python、Nginx的詳細(xì)過(guò)程
- Ubuntu上安裝Docker及可視化管理工具的流程步驟
- ubuntu安裝dotnet的方法
- Ubuntu系統(tǒng)中Redis的安裝步驟及服務(wù)配置詳解
- Ubuntu安裝MariaDB的具體步驟記錄
- 如何在ubuntu18.04安裝node?14.16.0
- Ubuntu24.04LTS在線安裝Docker引擎的詳細(xì)過(guò)程
- VMware虛擬機(jī)安裝Ubuntu20.04詳細(xì)教程(最新推薦)
- 在linux中安裝nginx及在樹(shù)莓派ubuntu中安裝nginx的方法
- ubuntu安裝golang并設(shè)置goproxy的方法步驟
- Ubuntu安裝MySQL的三種方式以及卸載MySQL
- ubuntu20.04安裝unity-tweak-tools啟動(dòng)時(shí)遇到錯(cuò)誤的解決
- Ubuntu?22.04或20.04安裝Oracle?SQL?Developer的圖文教程
- Ubuntu?Server?22.04.5?入門(mén)篇:詳盡安裝部署指南
相關(guān)文章
docker配置node項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了docker配置node項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01使用Docker部署的基于binlog實(shí)現(xiàn)Mysql8的操作方法
MySQL 基于?Binlog?的主從復(fù)制(Master-Slave Replication)是 MySQL 數(shù)據(jù)庫(kù)中實(shí)現(xiàn)數(shù)據(jù)復(fù)制的一種機(jī)制,這篇文章主要介紹了使用Docker部署的基于binlog實(shí)現(xiàn)Mysql8,需要的朋友可以參考下2025-01-01docker安裝kong網(wǎng)關(guān)的方法示例
這篇文章主要介紹了docker安裝kong網(wǎng)關(guān)的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05docker 創(chuàng)建RedHat8.5鏡像的命令
這篇文章主要介紹了docker 創(chuàng)建RedHat8.5鏡像的命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03CentOS系統(tǒng)下docker的安裝配置及使用介紹
這篇文章主要介紹了CentOS系統(tǒng)下docker的安裝配置及使用詳細(xì)介紹,需要的朋友可以參考下2016-10-10