公式サイト
Container management made easy
Portainer is the definitive open source container management tool for Kubernetes, Docker, Docker Swarm and Azure ACI. It allows anyone to deploy and manage containers without the need to write code.
コンテナ管理を簡単に。
PortainerはKubernetes、Docker、Docker Swarm、Azure ACIのためのdefinitiveなオープンソースコンテナ管理ツールで、これによって誰でもコードを書かずにデプロイとコンテナの管理することができます。
Getting started
Docker Hubのページでは、一応参照しながら、このGetting startedを確認。
- in Kubernetes
- in Docker
- Only Agent
があるけど、今回はAmazon Linux2上なので、in Dockerで。
Dockerインストール
まずは、Amazon Linux2上にDockerをインストール。
Portainer in Docker
Portainer is comprised of two elements, the Portainer Server, and the Portainer Agent. Both elements run as lightweight Docker containers on a Docker engine or within a Swarm cluster. Due to the nature of Docker, there are many possible deployment scenarios, however, we have detailed the most common below. Please use the scenario that matches your configuration.
Note that the recommended deployment mode when using Swarm is using the Portainer Agent.
Portainerは、Portainer ServerとPortainer Agentの2つの要素から成る。両要素は軽量のDockerコンテナとしてDocker Engine、もしくはSwarm Cluster内で動作する。Dockerの性質上、多くのデプロイシナリオがあるが、最も一般的なものを以下で詳しく説明する。
※Swarm利用時のの推奨デプロイモードはPortainer Agentの利用だ。
Docker Swarm
Deploying Portainer and the Portainer Agent to manage a Swarm cluster is easy! You can directly deploy Portainer as a service in your Docker cluster. Note that this method will automatically deploy a single instance of the Portainer Server, and deploy the Portainer Agent as a global service on every node in your cluster.
$ curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
$ docker stack deploy -c portainer-agent-stack.yml portainerNote: By default this stack doesn’t enable Host Management Features, you need to enable from the UI of Portainer.
PortainerとPortainer AgentをデプロイしてSwarmクラスターを管理するのは簡単だ。直接PortainerをサービスとしてDockerクラスターにデプロイできる。この方法だと自動的にPortainer Serverのシングルインスタンスがデプロイされ、Portainer Agentもグローバルサービスとしてクラスタの各ノードにデプロイされる。
※デフォルトではこのスタックはホスト管理の機能を有効化していないので、PortainerのUIから有効化する必要がある。
https://downloads.portainer.io/portainer-agent-stack.yml の内容は以下の通り。
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
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer-ce
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9000:9000"
- "8000:8000"
volumes:
- portainer_data:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
上位ファイルを利用してコマンドを実行・・・の前に・・・
$ docker swarm init
でSwarmの初期化をしておく。
で、実行。
$ docker stack deploy -c portainer-agent-stack.yml portainer
で、http://IP:9000でアクセスすると・・・
Adminユーザを作ると・・・
primaryホストを見ると・・・
あれ・・・コンテナが7つ?
- portainer_portainer:メインのPortainer Server
- portainer_agent:Portainer Agent
- nginx-sample-1:事前に作ってたNginx
- portainer_portainer:stoppedなのでレプリカ用!?
まとめ
Dockerさえ入っていれば、他のOSでも3コマンドで非常に簡単にインストールできるでしょう。
$ docker swarm init $ curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml $ docker stack deploy -c portainer-agent-stack.yml portainer