在 Arch Linux 上安裝 Docker
在 Arch Linux 上安裝 Docker 很簡(jiǎn)單。它可以在 Extra 倉(cāng)庫(kù)中找到,你可以簡(jiǎn)單地 執(zhí)行 pacman 魔法:
sudo pacman -S docker
但要在 Arch Linux 上正確運(yùn)行 Docker,還需要執(zhí)行更多步驟。
讓 Arch Docker 做好準(zhǔn)備
這一切都?xì)w結(jié)為以下步驟:
- 從 Arch 倉(cāng)庫(kù)安裝 Docker
- 啟動(dòng) Docker 守護(hù)進(jìn)程并在每次啟動(dòng)時(shí)自動(dòng)運(yùn)行
- 將用戶添加到
docker
組以運(yùn)行docker
命令而無需sudo
讓我們看看詳細(xì)步驟。
步驟 1:安裝 Docker 包
打開終端并使用以下命令:
sudo pacman -S docker
輸入密碼并在詢問時(shí)按 Y
。
這可能需要一些時(shí)間,具體取決于你使用的鏡像。
?? 如果你看到找不到包或 404 錯(cuò)誤,那么你的同步數(shù)據(jù)庫(kù)可能是舊的。使用以下命令更新系統(tǒng)(它將下載大量軟件包并需要時(shí)間):
sudo pacman -Syu
步驟 2:?jiǎn)?dòng) docker 守護(hù)進(jìn)程
Docker 已安裝但未運(yùn)行。你應(yīng)該在第一次運(yùn)行 Docker 命令之前啟動(dòng) Docker 守護(hù)進(jìn)程:
sudo systemctl start docker.service
我還建議啟用 Docker 服務(wù),以便 Docker 守護(hù)進(jìn)程在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)。
sudo systemctl enable docker.service
這樣,你就可以開始運(yùn)行 docker
命令了。你不再需要手動(dòng)啟動(dòng) Docker 服務(wù)。
步驟 3:將用戶添加到 docker 組
Docker 已安裝并且 Docker 服務(wù)正在運(yùn)行。你幾乎已準(zhǔn)備好運(yùn)行 docker
命令。
但是,默認(rèn)情況下,你需要將 sudo
與 docker
命令一起使用。這很煩人。
為了避免在每個(gè) docker
命令中使用 sudo
,你可以將自己(或任何其他用戶)添加到 docker
組,如下所示:
sudo usermod -aG docker $USER
你必須注銷(或關(guān)閉終端)并重新登錄才能使上述更改生效。如果你不想這樣做,請(qǐng)使用以下命令:
newgrp docker
現(xiàn)在已經(jīng)準(zhǔn)備好了。我們來測(cè)試一下。
步驟 4:驗(yàn)證 docker 安裝
Docker 本身提供了一個(gè)很小的 Docker 鏡像來測(cè)試 Docker 安裝。運(yùn)行它并查看是否一切正常:
docker run hello-world
你應(yīng)該看到類似這樣的輸出,表明 Docker 成功運(yùn)行:
恭喜! 你已經(jīng)在 Arch Linux 上成功安裝了 Docker。
可選:安裝 Docker Compose
Docker Compose 已經(jīng)成為 Docker 不可或缺的一部分。它允許你管理多個(gè)容器應(yīng)用。
較早的經(jīng)典 Compose 由 docker-compose
Python 軟件包提供。Docker 還將其移植到 Go 中,并通過 docker compose
提供,但該軟件包附帶 Docker Desktop。
在這個(gè)階段,我建議使用經(jīng)典的 docker-compose
插件并使用以下命令安裝它:
sudo pacman -S docker-compose
故障排除技巧
以下是你可能遇到的一些常見問題以及可能的解決方案:
制表符補(bǔ)全不適用于 docker 子命令
如果你想對(duì) docker
命令選項(xiàng)使用制表符補(bǔ)全(例如將 im
補(bǔ)全到 images
等),請(qǐng)安裝 bash-completion
包:
sudo pacman -S bash-completion
關(guān)閉終端并啟動(dòng)一個(gè)新終端。你現(xiàn)在應(yīng)該能夠通過 docker
命令使用制表符補(bǔ)全功能。
無法連接到 Docker 守護(hù)進(jìn)程錯(cuò)誤
如果你看到以下錯(cuò)誤:
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
那是因?yàn)?Docker 守護(hù)進(jìn)程沒有運(yùn)行。參考步驟 2,啟動(dòng) Docker 服務(wù),確保其正在運(yùn)行并啟用它,以便 Docker 守護(hù)進(jìn)程在每次啟動(dòng)時(shí)自動(dòng)運(yùn)行。
sudo systemctl start docker.service
sudo systemctl enable docker.service
嘗試連接到 Docker 守護(hù)程序套接字時(shí)權(quán)限被拒絕
如果你看到此錯(cuò)誤:
ddocker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
這是因?yàn)槟阈枰褂?nbsp;sudo
運(yùn)行 docker
命令,或者將用戶添加到 docker
組以在不使用 sudo
的情況下運(yùn)行 docker
命令。
我希望這篇簡(jiǎn)短的文章可以幫助你在 Arch Linux 上運(yùn)行 Docker。