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 での動かし方は別記事に書きました。