1.更換源
vi /etc/apt/sources.list
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted
universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main
restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main
restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main
restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main
restricted universe multiverse
2.安裝依賴
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
這個命令后面跟了幾個軟件包的名字,它們分別是:
apt-transport-https:這個軟件包允許apt使用HTTPS協(xié)議來訪問軟件源。
ca-certificates:這個軟件包提供了一些受信任的證書頒發(fā)機構的證書,用來驗證HTTPS連接的安全性。
curl:這個軟件包提供了一個命令行工具,用來發(fā)送和接收網絡數(shù)據。
gnupg-agent:這個軟件包提供了一個后臺程序,用來管理GnuPG密鑰和密碼。
software-properties-common:這個軟件包提供了一些工具,用來管理軟件源和PPA(Personal Package Archive)。
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
這個命令是用來從網絡上下載并添加Docker的官方GPG密鑰的,它使用了curl和apt-key兩個工具。
這個命令的各個部分的含義如下:
curl -fsSL:這是curl工具的參數(shù),它們分別表示:
f:如果HTTP請求失敗,不顯示錯誤信息。
s:靜默模式,不顯示進度條或錯誤信息。
S:如果發(fā)生錯誤,顯示錯誤信息。
L:如果HTTP請求被重定向,自動跟隨新的地址。
https://download.docker.com/linux/ubuntu/gpg:這是Docker的官方GPG密鑰的地址,curl會從這個地址下載密鑰。
|:這是一個管道符號,它表示將前面命令的輸出作為后面命令的輸入。
sudo apt-key add -:這是apt-key工具的命令,它表示以管理員權限添加一個新的密鑰到信任列表中。-表示從標準輸入讀取密鑰。
這個命令的意思就是使用curl工具從Docker網站下載GPG密鑰,并通過管道符號傳遞給apt-key工具添加到信任列表中。
sudoadd-apt-repository \
"deb [arch=arm64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
這個命令是用來添加一個APT軟件源到Ubuntu系統(tǒng)中的,它使用了add-apt-repository工具,它是一個用來管理APT軟件源的工具。
這個命令后面跟了一個軟件源的地址,它由以下幾部分組成:
deb:這表示這是一個二進制軟件包的源,而不是源代碼的源。
[arch=arm64]:這表示這個軟件源只適用于arm64架構的系統(tǒng),如果的系統(tǒng)不是arm64架構的,需要修改這個參數(shù)。
https://download.docker.com/linux/ubuntu:這是Docker官方提供的軟件源的地址,可以從這里下載Docker相關的軟件包。
$(lsb_release -cs):這是一個命令替換符號,它表示執(zhí)行l(wèi)sb_release -cs命令,并將其輸出作為參數(shù)。lsb_release -cs命令會顯示Ubuntu系統(tǒng)的發(fā)行代號,比如focal或hirsute。使用這個命令可以讓自動匹配當前系統(tǒng)版本對應的軟件源。
stable:這表示使用穩(wěn)定版的Docker軟件包,而不是測試版或開發(fā)版。
這個命令的意思就是使用add-apt-repository工具添加一個適用于arm64架構和當前Ubuntu版本的Docker穩(wěn)定版軟件源到系統(tǒng)中。
sudo apt-get install docker-ce docker-ce-cli containerd.io
Docker Engine是一個用于創(chuàng)建和運行容器的軟件,docker-ce-cli表示社區(qū)版的Docker Engine命令行界面
3.驗證
docker pull hello-world
docker run hello-world
如果你看到以下信息,說明你的安裝是正確的:
Hello from Docker! This message shows that your installation appears to be working correctly.
報錯1
dpkg: error processing package docker-ce (--configure):
installed docker-ce package post-installation script subprocess returned error
exit status 1
Errors were encountered while processing:
docker-ce
E: Sub-process /usr/bin/dpkg returned an error code (1)
按以下方式解決,然后重復執(zhí)行第四步,(這個報錯其實是因為內核沒有配置好,安裝完docker后自動
啟動出現(xiàn)了問題,所以才會有這個報錯,執(zhí)行下面操作雖然可以解決問題,但是并沒有什么卵用,還是
起不來)
sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/bak/
sudo mkdir /var/lib/dpkg/info/
報錯2
could not get initial namespace: no such file or directory
內核沒有勾選namespace配置,內核添加如下配置。
CONFIG_NAMESPACES=y
報錯3
failed to add the host (vethefe9f2b) <=> sandbox (veth4c4b0c0) pair interfaces:
operation not supported.
內核添加 veth 的配置
報錯4

kernel 新增了overlay fs config , 單獨刷boot.img 驗證文章來源:http://www.zghlxwxcb.cn/news/detail-495524.html
不過改完這個, 命令查看lsblk 會發(fā)現(xiàn)/dev/mmcblk1p8 變成了/dev/mmcblk0p8 , 如果通過這個掛載分區(qū)的記得要根據lsblk具體的名字來。文章來源地址http://www.zghlxwxcb.cn/news/detail-495524.html
到了這里,關于Linux(7)Ubuntu20.04 arm64安裝Docker的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!