Docker-composeでPotainerを起動する
Dockerの管理にはPortainerを使うのが便利で楽である。dockerコマンドを使えば良いと思うかもしれないが、やはりGUIで確認できたり操作できるのは便利。ということで、Portainerをインストールする。
前提条件
PortainerのウェブページはSSLで保護するが、どうせ開発者しか使わないので、Let’s Encrypt等の証明書ではなく、自己署名証明書を使うことにする。
Let’s Encryptの証明書を管理してくれるhttps-portalやTraefikを、Portainer自体で管理するので、二重にその処理を行うことはしない。
フォルダと自己署名証明書の用意
適当なフォルダを用意して、そこに自己署名証明書を作成する。
mkdir some-folder
cd some-folder
mkdir certs
cd certs
以下はLinuxで自己署名証明書を発行する方法記述そのままの方法。
openssl genrsa 2048 > server.key
openssl req -new -key server.key > server.csr
この後なんやかやと聞かれるが、すべてENTERでよい
openssl x509 -req -days 3650 -signkey server.key < server.csr > server.crt
days 3650からわかるように、この証明書の有効期間は3650日になる。
docker-compose.ymlを記述して起動する
Portainerは9000番がhttp、9443番がhttpsになっているが、httpは不要。
version: '3'
services:
portainer:
image: portainer/portainer-ce:2.15.1
container_name: portainer
ports:
- 9443:9443
restart: unless-stopped
security_opt:
- no-new-privileges:true
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data:/data
- ./certs:/certs
command:
--ssl
--sslcert /certs/server.crt
--sslkey /certs/server.key
この時点でフォルダーは以下の状態になる。dataフォルダはPortainerが勝手に作るので、作成の必要はない。
some-folder
docker-compose.yml
certs
server.crt
server.csr
server.key
これを起動する。
docker-compose up -d
Portainerにアクセスする。
123.123.123.123、もしくはporitainer.example.comだとすると、
- https://123.123.123.123:9443
- https://portainer.example.com:9443
としてアクセスする。当然ブラウザが警告してくるが、構わずアクセスを続行する。
初期画面では、ログインアカウントを作成するだけだ。これ以外に./dataディレクトリに何が格納されるのかは不明。ちなみに、この記事を書くために、いったん./dataディレクトリを削除したが、再度アカウントを作成する以外は何の不都合も感じなかった。
ログインすると以下の画面が出てくる
コンテナを調べてみると、このPortainer自体もリストされる。