プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2022/04/19

Portainer を docker-compose で動かす

update2022/05/27 event_note2022/04/19 4:11

Docker の GUI 管理ツールである Portainer を docker-compose で動かしてみました。

環境

  • Docker 20.10.7
  • portainer-ce 2.11

docker-compose.yml

Docker での動かし方は公式ドキュメントに記載されています。

これを docker-compose に落とし込んだのが以下です。

version: '3'
services:
  portainer:
    image: portainer/portainer-ce
    container_name: portainer
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    ports:
      - 8000:8000
      - 9000:9000
      - 9443:9443
volumes:
  portainer_data:

通常 HTTPS で 9443 番ポートで アクセスしますが、HTTP でアクセスしたい場合は 9000 番ポートを使用します。
8000 番ポートは Edge コンピュート機能を使用する場合にのみ必要とありますが、使っていないので詳細はわかりません。 それ以外には特筆すべき点はないかと思います。

これで http://localhost:9000 にアクセスすれば画面が表示されます。

Portainer Agent を追加する

以上で Portainer が使えるようになったのですが、Docker Volume の中が閲覧出来ませんでした。
これを有効化するには、Docker Swarm または Portainer Agent を追加する必要があるようです。

Docker Swarm はまた別記事にするとして、ここでは Portainer Agent を追加します。
やり方については以下の記事が参考になりました。

version: '3.2'
services:
  agent:
    image: portainer/agent
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
  portainer:
    image: portainer/portainer-ce
    command: -H tcp://agent:9001 --tlsskipverify
    ports:
      - "9000:9000"
    volumes:
      - portainer_data:/data
volumes:
  portainer_data:

これで Docker Volume の中を閲覧できるようになりました。

Docker Swarm での動かし方は別記事に書きました。