Portainer入門(on Amazon Linux 2)

公式サイト

Portainer | Open Source Container Management for Kubernetes, Docker, Swarm

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.

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 portainer

Note: 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