“Docker Desktop"是Docker公司推出的專有軟體,以圖形化界面配合虛擬機,讓初學者快速上手Docker開發環境。尤其對Windows和macOS用戶來說,這是最方便安裝Docker Engine的作法。
注意"Docker Desktop"不等於"Docker Engine”,前者是包含Docker在內的封閉原始碼軟體,後者則是一套開源的容器技術。
Docker Engine原本就是為Linux系統設計的技術,Linux用命令行就能輕鬆安裝Docker Engine,用指令操作Docker容器也方便。如果你已經熟悉在Linux用命令行操作Docker,那就只要單獨裝Docker Engine就好,不太需要用到Docker Desktop。
目前Docker Desktop (版本4.19.0) 只支援Fedora、Ubuntu、Debian。openSUSE不能裝Fedroa的rpm (順帶一提SUSE公司有自己一套Rancher Desktop管理工具)。
至於Arch系的套件,Docker Desktop處於實驗性支援狀態,不能從AUR安裝,要手動安裝。
1. 安裝Docker#
Docker官網文件建議安裝Docker官網提供的靜態執行檔,雖說我自己測試用 Arch套件庫提供的Docker也是可以跑。
- 安裝Docker靜態執行檔所需套件
sudo pacman -S iptables-nft git procps-ng xz
- 從 Docker官網下載安裝靜態Docker執行檔,內含docker-compose
wget https://download.docker.com/linux/static/stable/x86_64/docker-23.0.5.tgz
tar xzvf docker-23.0.5.tgz
sudo cp docker/* /usr/bin/
sudo dockerd &
2. 安裝Docker Desktop套件#
安裝 QEMU與KVM
安裝GNOME終端機
sudo pacman -S gnome-terminal
從 Docker Desktop Release下載Arch的套件(Arch package)
使用pacman安裝Docker Desktop本機套件
sudo pacman -U docker-desktop-4.19.0-x86_64.pkg.tar.zst
- 確認Docker版本,不需要sudo
docker version
docker compose version
- 以一般使用者啟動Docker Desktop服務
systemctl --user start docker-desktop
# 登入桌面自動啟動Docker Desktop
systemctl --user enable docker-desktop
- 這樣Docker Desktop就會自己跳出來
3. 使用Docker Desktop操作容器#
你無法在Docker Desktop直接拉取映像,還是得用到終端機指令。
- 開啟終端機,拉取官方範本。注意執行docker指令的時候不需要sudo,不然Docker Desktop會看不到執行中的容器。
docker run -d -p 80:80 docker/getting-started
如果遇到dialing registry-1.docker.io:443 with direct connection: resolving host registry-1.docker.io: lookup registry-1.docker.io on 192.168.1.1:53: no such host
錯誤,那麼就將systemd-reslove的DNS伺服器改為Cloudflare
# 取得目前連線的UUID
sudo nmcli con
# 修改DNS
sudo nmcli con mod "UUID" ipv4.dns "1.1.1.1 8.8.8.8"
# 重新啟動網路服務
sudo systemctl restart NetworkManager
Docker Desktop即會顯示目前運作中的容器。
點進去可以直接存取容器內部的終端機 (等同終端機執行
docker exec
指令)啟動Docker Desktop後會一併啟動QEMU虛擬機,佔用RAM 2GB,硬碟64GB,資料儲存於
~/home/user/.docker/desktop/vms/0/
。在Docker Desktop的設定頁面可以調整分配的資源。
4. 解除安裝Docker Desktop#
Docker Desktop可能會干擾一般使用者執行Docker指令,遇到此情況請將Docker Desktop移除。
- 刪除套件
sudo pacman -R docker-desktop
- 刪除設定檔與符號連結
rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
rm $HOME/.docker/config.json
sudo pacman -Rns docker-desktop