コンテナ管理: Portainer CE を Docker で構築したのでまとめてみた。
Portainer とは?
ブラウザから GUI でコンテナ管理ができる Portainer。
Stack, Container, Image の管理、ログの取得、コンソールアクセスなどがブラウザから簡単に行える。
そのほか、TCP越しに Docker Engine API を用いて別の Dockerホスト (Endpoint) を並列に管理することもできる。
Portainer CE は Community Edition版の portainer で open-source。
最近はあちこちに Docker container が乱立しているので、
Portainer(CE) を導入して一括管理できるようにする。
なお、私は多くの環境で rootless docker を多用してるが、
rootless docker でも問題なく使えることを確認している。
セットアップ
基本的には公式のインストラクションに則る。
1 2 |
$ docker volume create portainer_data $ docker run -d -p 9000:9000 --name portainer --restart=always -v /path/to/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce |
-v /path/to/docker.sock:/var/run/docker.sock
の箇所は、
- システムに docker をインストールしている人は
/var/run/docker.sock
- rootless docker をインストールしている人は環境変数
DOCKER_HOST
の場所
(/run/user/100x/docker.sock など)
これで 127.0.0.1:9000 などにアクセスすると初期設定画面が現れるので、
administrator アカウントを作成すればよい。
サブディレクトリアクセス
サブディレクトリへのアクセスを nginx で reverse proxy 動作させてやる。
コンソールアクセス等に websocket を用いているようなので、JupyterHub と同様に設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/etc/nginx/conf.d/reverseproxy.conf ... location ~ ^/portainer/.*$ { rewrite ^/portainer/(.*)$ /$1 break; proxy_pass http://127.0.0.1:9000; proxy_redirect off; # websocket headers proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header X-Scheme $scheme; proxy_buffering off; } ... map $http_upgrade $connection_upgrade{ default upgrade; '' close; } ... $ sudo service nginx restart |