2025年9月28日 星期日

在 docker 中安裝 Portainer 管理介面

在 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 會比較簡單一些




沒有留言:

張貼留言