在 docker 中安裝 Portainer 管理介面
要安裝有幾種方式,其中直接啟動是最快的一個指令即可啟動,缺點就是自己得筆記這個啟動命令,否則到時候忘記了更新版本時要重新部署會很麻煩。
容器要是多了每個都必須筆記每次的啟動命令就會相對的有點麻煩,這個解法有兩個
- docker compose
- portainer stack
兩者其實是同一種方式,都是通過 yml 來管理容器的起動。區別在於前者要自己管理 yml 位置,後者可以直接在網頁介面輸入,由 portainer 幫你管理。
由於我們安裝的是 portainer 這個變成雞生蛋的問題了,只能用 docker compose 或是直接啟動的方式部署服務。
方式1 直接啟動
第二種方式,是最簡單的直接啟動只需要貼上這一個指令集即可
docker run -d \
-p 8000:8000 \
-p 9000:9000 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:lts
啟動之後使用 http://localhost:9000 即可瀏覽管理介面
之後如果更新版本需要重新啟動容器的話,執行底下的命令更新映像檔
docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:lts
然後再次執行相同的啟動的命令即可
方式2 使用 docker compose
這個方式可以通過 yml 文件創建,就不用筆記啟動令命了,只需要好好管理 yml 即可。
這裡提供的管理結構如下,結構自己依照自己的需求調整即可。
# 系統級目錄結構
/srv/docker/
└── portainer/
├── docker-compose.yml
├── .env
└── data/
用這樣方式來儲存,然後創建目錄並指定給 docker 群組
# 將使用者加入 docker 群組
sudo usermod -aG docker $USER
# 創建主目錄
sudo mkdir -p /srv/docker
# 設定目錄權限
sudo chown -R root:docker /srv/docker
sudo chmod -R 775 /srv/docker
# 設定 SGID(重要:確保新文件繼承群組權限)
sudo find /srv/docker -type d -exec chmod g+s {} \;
# 重新登入以套用群組變更
newgrp docker
再來啟動該 docker 容器
cd /srv/docker/portainer
docker compose pull
docker compose up -d
啟動之後使用 http://localhost:9000 即可瀏覽管理介面
如果需要更新版本只需要一樣的三行重新執行一次即可,用 compose 會比較簡單一些
沒有留言:
張貼留言