Portainerが便利というはなし聞いて、
ちょっと入門してみたときの備忘録(*´ω`*)
Portainerとは
Portainer is a fully featured Docker management tool.
GUIでDockerを管理できる便利なツール。
機能もいろいろあるっぽい。
Fetature
- Build your images
- Deploy your application
- Secure your environments
- Browse your registries
- Manage your clusters
- Troubleshoot your configuration
読んでみたのはこのあたり
- Document Site: Welcome - Portainer Documentation
- GitHub Repository: portainer/portainer: Making Docker and Kubernetes management easy.
Portainerのアーキテクチャ
登場人物は3つ。
- Portainer Server
- 単一の中央管理サーバ
- データの永続化が必要
- Portainer Agent
- 管理される側のAgent
- ServerからAgentにアクセス
- Edge Agent
- 管理される側のAgent
- Edge AgentからServerにアクセス
Portainer AgentかEdge Agentのどっちを使うといいかはこのあたりに。
ざっくりとしては、
- 同一ネットワークなどアクセスできる場合は、Portainer Agent
- 別ネットワークやインターネットに公開したくない場合は、Edge Agent
っぽい感じがする。
Portainerをためしてみる
Install Portainer CE with Docker Standalone
このあたりを参考に試してみる。
最新のdockerがインストールされている前提。
Portainer Serverなどは軽量Dockerコンテナとして提供されている。
コンテナの各バージョンや要件はこのあたり。
# 管理画面のアカウントや管理データを保持するvolumeを作成 $ docker volume create portainer_data # Portainer Serverコンテナのインストール&起動 docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
ポートの9443は管理画面のhttps用、8000はEdge AgentのTCPトンネルサーバ用。
Portainer自体が自己証明書を作成してくれるのでhttpsでアクセス可能。
httpがいいときは、-p 9000:9000
に変更すればOK
初期設定
起動を確認したら、https://localhost:9443
にアクセスすると管理画面が表示される。
初回起動時にはアカウント作成画面になるので、
アカウントを作成すればOK
アカウントの作成が完了すると、
ローカルのDockerの情報が見れるようになる。
Settings関連
Users
Portainer管理画面のログインアカウントの管理関係。
TeamやRolesなども設定できる。
Environments
Portainer Serverが接続しているDocker環境。
初期状態はローカルのDockerだけだけど、ここで追加したりできる。
Registries
Contener Registoryの管理。
デフォルトはDockerHubのみだけど、
AWS ECRやAzureなども追加できる。
Settings
Portainer Server自体の設定。
LDAP/OAuthを使った認証設定や
Edge Agent関係の設定などもこのあたり。
Tips
GCPのArtifact Registryを登録する
前の記事でArtifact RegistryにDockerイメージをpushしたので、
PortainerのRegistriesに登録したい。
Custom Registryを使えば登録できるっぽい。
参考にしたのはこのあたり。
- アクセストークン | Docker の認証を設定する | Artifact Registry のドキュメント | Google Cloud
- Google Container Registry and Portainer | by Daz Wilkin | Google Cloud - Community | Medium
- Integrating Google Container Registry · Issue #1702 · portainer/portainer
すでにArtifact Registryがある前提。
アクセスするために認証が必要なので、アクセストークンを取得する。
権限をArtifact Registryに絞ったサービスアカウントを作成しておくのが良い。
# ログイン中のアカウントでアクセストークンを取得 $ gcloud auth print-access-token | pbcopy > ya29.XXXXXXX # サービスアカウントでアクセストークンを取得 $ gcloud auth print-access-token --impersonate-service-account <ACCOUNT> | pbcopy > ya29.XXXXXXX
あとは、Registryを追加すればOK
- Name: (すきな名前)
- Registry URL: Artifact RegistryのURL
<REGION>-docker.pkg.dev/<PROJECT_ID>/<REPOSITORY_NAME>
- 例)
asia-northeast1-docker.pkg.dev/my-project/my-repository
- Authentication: ON
- Username: oauth2accesstoken
- Password: (取得したアクセストークン。例:
ya29.XXXXXXX
)
ユーザ名のoauth2accesstoken
はGCPで指定されているっぽい。
あとは、Images
で作成したRegistryを選んで、
Pull the image
を試して成功すればOK
以上!! これでGUIでDockerを管理できるように。。(*´ω`*)
参考にしたサイトさま
- Docker管理ツールPortainerで複数ホストをまとめて管理-ピピローグ
- Portainer Edge Agentを雑に運用する #Docker - Qiita
- アクセストークン | Docker の認証を設定する | Artifact Registry のドキュメント | Google Cloud
- Google Container Registry and Portainer | by Daz Wilkin | Google Cloud - Community | Medium
- Integrating Google Container Registry · Issue #1702 · portainer/portainer