# Rocky Linux9 上安裝 Docker 資料來源:https://idroot.us/install-docker-rocky-linux-9/#:~:text=sudo%20dnf%20install%20docker-ce%20docker-ce-cli%20containerd.io%20docker-compose-plugin%20--allowerasing,sudo%20systemctl%20enable%20docker%20sudo%20systemctl%20start%20docker 在本文中,我們展示如何在 Rocky Linux 9 上安裝 Docker CE。Docker CE是一個免費的開源容器化平臺,Docker使用Linux內核在作業系統之上創建容器、部署和運行應用程式。 本文假設您至少具有Linux的基本知識,知道如何使用shell。安裝非常簡單,大部分都是以 root 權限執行,若是一般使用者則需具備sudo權限,在命令中添加 'sudo'以獲得root權限。以下將展示如何在 Rocky Linux 上逐步安裝 Docker 容器,假設 user1 具備sudo權限。 ## 1.系統更新 ``` user1# sudo dnf check-update user1# sudo dnf install dnf-utils user1# sudo dnf install device-mapper-persistent-data lvm2 ``` ## 2.安裝 Docker ``` .加入docker套件來源庫 user1# sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo .安裝docker套件 user1# sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing ``` 安裝完後會在Linux系統上建立一個user group "docker",可供後續使用。 ## 3.啟動 Docker docker一般都透過root權限執行,透過systemctl來啟動。 ``` root# systemctl enable docker root# systemctl start docker ``` 若要讓另一個具有sudo權限的user來執行docker,則需加入docker group ``` user1# sudo usermod -aG docker $(whoami) user1# sudo usermod -aG docker user1 user1# newgrp docker <==加入docker group ``` 驗證docker是否安裝完成,若沒有錯誤訊息表示成功安裝。 ``` user1# docker version ``` ## 使用 rootless 模式 docker一般都透過root權限執行,但以root權限執行可能會損害系統,考量到安全一般會以非root權限執行,此時需先停掉系統的docker服務: ``` root# systemctl stop docker root# systemctl disable docker root# reboot ``` 重開機後,以root權限執行以下指令,載入ip_tables模組: ``` root# sh -eux <<EOF # Load ip_tables module modprobe ip_tables EOF ``` 再將要使用docker的使用者(EX:user2),啟用其個人的systemctl執行權限 ``` root# loginctl enable-linger user2 ``` 登出root,之後改以一般user登入,設定環境變數XDG_RUNTIME_DIR,並加入.bashrc,再進行docker rootless自動設定: ``` user2# echo "export XDG_RUNTIME_DIR=/run/user/$UID" >> ~/.bashrc user2# export XDG_RUNTIME_DIR=/run/user/$UID user2# dockerd-rootless-setuptool.sh install ``` 完成後會看到最後一行為 ``` export DOCKER_HOST=unix:///run/user/$UID/docker.sock ``` 代表設定成功,其中/run/user/$UID/docker.sock為這個user使用的sock窗口,每個使用者的執行窗口(sock)都不相同。 要注意的是,此時有設定可使用docker的使用者,在系統重開機後,都會自動啟動個人的docker服務,無論有無建立容器(container)都會佔用記憶體。 ## 安裝 portainer 在管理Docker容器時,portainer是很好的圖形介面管理程式,其運作方式也是透過docker容器,因此安裝及維護相當容易。https://www.portainer.io/ ``` 1. 建立 portainer 用的 volume docker volume create portainer_data 2. 安裝並執行 portainer docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest ``` 若是以rootless方式執行portainer,需將docker.sock設定到執行的窗口,修改如下: ``` docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/run/user/$UID/docker.sock -v portainer_data:/data portainer/portainer-ce:latest ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up