2017/01/23

Docker初心者でも安心!Portainerを使ってイメージやコンテナを管理する

初心者にとってDockerのイメージやコンテナをCLIで操作するのは大変だ。覚えるコマンドはたくさんあるし、操作だって手間がかかる。
単純にDockerfileを用意して、イメージつくって、コンテナ立ち上げるくらいなら簡単だが、コンテナの数が増えてくると手に負えない。

そこでPortainerというツールをオススメする。
PortainerはDockerホストをブラウザから操作するための軽量な管理ツールだ。LinuxだけでなくWindowsでもmacOSでも使う使うことができる。
※ Windowsのみ、Portainerが動いているDockerホストを管理することができない

もともとはUI for Docker(a.k.a. DockerUI)だったのが、Portainerに名前を変えて開発が継続されているらしい。



1. Dockerをインストールする


Portainerを利用するにはDockerをつかってデプロイするのが簡単だ。(ニワトリが先か、卵が先か、みたいになっちゃうけど)
もちろんDockerを使わなくてもデプロイすることができる。詳しくはドキュメントのWithout Dockerを参照してほしい。

Dockerなどのコンテナ利用に特化したCoreOSというものもあるが、今回は無難にCentOS 7.2をつかう。

Dockerインストール用のシェルスクリプトを用意した。「setup.sh」のような名前をつけて保存し実行すれば面倒な手順を踏まずにDockerをインストールすることができる。
#!/bin/bash

# CentOS 7.x
yum update -y

# Install Docker
tee /etc/yum.repos.d/docker.repo <<-'__EOF__'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
__EOF__

yum install docker-engine -y
systemctl enable docker.service
systemctl start docker

WindowsやmacOSの場合は、Docker for Windows/Macをインストールすれば良い。



2. Portainerをインストールする


Portainerのインストールは、DockerHubからPortainerのイメージをダウンロードして起動するだけでできる。
# portainerが動いているDockerホストを管理する場合(Linux or Mac)
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

# リモートのDockerホストを管理する場合
$ docker run -d -p 9000:9000 portainer/portainer

この1行で、http://DOCKER_HOST:9000に接続するとPortainerにアクセスすることができる。DOCKER_HOSTはDockerが入っているサーバのIPアドレスや、ローカル環境ならlocalhostになる。

コマンドで「-p 9000:9000」になっているところを書き換えれば、9000番以外のポートでも接続できる。
(例: 「-p 123:123」 → http://DOCKER_HOST:123



3. Portainerにアクセスし、初期設定を行う


Docker上で動いているPortainerにアクセスする。

3.1. 管理者のパスワードを設定する

はじめてhttp://DOCKER_HOST:9000にアクセスすると、http://DOCKER_HOST:9000/#/authにリダイレクトされるので、管理者(admin)のパスワードを入力し、Validateボタンをクリックする。

※ パスワードは8文字以上
※ パスワードはあとで変更できる


3.2. 管理者でログインする

先ほど設定したパスワードで、管理者としてログインする。

  • ユーザ名: admin
  • パスワード: 「3.1. 管理者のパスワードを設定する」で設定したパスワード


3.3. 接続先(管理するDockerホスト)を指定する

今回はPortainerが動いているDockerホストを管理したいので、「Manage the Docker instance where Portainer is running」を選択する。

もし自身以外のDockerホストを管理したい場合は、「Manage a remote Docker instance」を選択し、以下の項目を入力する。
  • Name: 接続先の名前(Portainer上で表示する名前)
  • Endpoint URL: 接続先のIPアドレスやURL
  • TLS: TLSで接続するときにサーバ証明書などを設定する
※ 接続先のEndpoint URLはあとで変更、追加、削除ができる


3.4. 設定完了

これでPortainerのすべての初期設定が完了した。


4. Portainerの機能を使う


PortainerにはDockerのイメージやコンテナを管理するための機能がたくさん備わっている。ということで、ひとつずつ紹介する。

4.1. Dashboard

Dockerホストの情報やイメージ、コンテナの数などが一覧で見ることができる。


4.2. Add Templates

あらかじめイメージのテンプレートが用意されており、たった2clickでコンテナを立ち上げることができる。リソース名や開放するポート、ユーザのパスワードなどの指定もできる。


4.3. Containers

コンテナのステータス確認をはじめ、起動、停止、追加、削除などができる。
一覧に見えているのは「docker ps -a」をした結果。
起動や停止は「docker run」や「docker stop」が実行される。

コンテナの名前をクリックすると、詳細をみることができる。
そこではコンテナに入ってコンソールを操作したり、ログを見たりできる。コマンドでやろうとするとちょっと面倒なので、こうやってGUIから操作できるのは本当に便利だ。


4.4. Images

Dockerイメージの一覧が確認できる。一覧で見えているのは「Docker images」をした結果。
またDocker Hubで公開されているイメージを取得したり、直接レジストリのURLを指定して取得することもできる。イメージ名をクリックすると、その詳細も確認できる。


4.5. Networks

Dockerのネットワーク設定について確認することができる。
ただ私自身、ネットワークの機能を使ったことがないので、詳しいことは割愛させていただく。


4.6. Volumes

ホストからコンテナにマウントしているボリューム(ディレクトリ/ファイル)の一覧が確認できる。


4.7. Events

Dockerコマンドの実行履歴やイメージやコンテナを操作したときのログなどが確認できる。


4.8. Docker

Docker Engineのバージョン情報やステータスが確認できる。
テストでは1コア/1GBのインスタンスで動かしているので、そのように表示されている。


4.9. Password

はじめてPortainerにアクセスしたときに設定した管理者(admin)のパスワードを変更することができる。


4.10. Endpoints

リモートのDockerホストを管理するときは、ここでEndpointの追加を行う。この記事では、Portainerが動いているDockerホストを見ているので、URLが「/var/run/docker.sock」になっている。



さいごに


私自身Docker初心者で、簡単なイメージの作成やコンテナの起動以外はほとんどわからない。それでもGUIを使うことで、面倒なコマンド類を覚えることなく使えるのは便利だし、学びたいことに集中できる。(サーバサイドのアプリが作りたいのに、Dockerのコマンドを覚えるみたいなことをしなくてすむのはありがたい)

まだ、細かい所は触れていないので、Portainerのポテンシャルを計り知れていない。
ためしに以前つくった自分のアプリを動かしてみたが、SSHでサーバに接続しDockerコマンドを打たなくてすむので重宝している。


参考サイト




以上

written by @bc_rikko

0 件のコメント :

コメントを投稿