7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

portainerであれこれ試した話

Last updated at Posted at 2018-04-18

dockerのGUI使ってみたい、という事でportainerとrancherを試してみた。

この2つを試した理由はdockerイメージが提供されててコンテナ立ち上げればすぐ使えそうだったから。
rancherは機能的にはリッチな感じだけど、関連コンテナがボコボコ10個くらい立ち上がってきたので見送り。ポート周りの設定もなぜかうまくできなかった。(いつかもう一度試す)
agentコンテナが全然立ち上がらなくてあれこれ試行錯誤したのだけれどそれはまた今度。

で、portainer。
portainerの良いところはコンテナ1個で、細かい設定なしですぐ使い始められるとこ。素敵。
で、そんなportainerをもう少し使いこなしたくていじくりまわしたのでその結果を書く。
細かい理屈は置いといて~~(置きっぱなし)~~、できたこととそのやり方をメモ。
適宜追加していく予定。(追加するとは言っていない)

環境

環境はubuntu16.04
dockerのバージョンは17.12.0-ce
portainerは多分1.16.5 多分。

portainerにホストを追加する

portainerで複数のホストを管理する、要はEndpointの追加のやり方。
サーバAでportainerのコンテナを起動して、管理対象にサーバBを追加するようなとき。
作業は基本的にrootで実施。

  1. dockerデーモンの起動オプションを追加する
    リモートホスト(サーバBの方)のdockerデーモンに、tcpソケットを有効にするオプションを追加すればいい。らしい。
    daemon.jsonを書き換える方法は上手く出来なかった。起動時の設定とconflictしてるとか何とか。
    最終的には /lib/systemd/system/docker.service を書き換えることで対応。

    ここ↓を

    ExecStart=/usr/bin/dockerd -H fd://
    ExecReload=/bin/kill -s HUP $MAINPID
    

    こう↓した
    1行目の空白は既存設定の上書きに必要っぽい。書かなかったら失敗したので注意。

    ExecStart=
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
    ExecReload=/bin/kill -s HUP $MAINPID
    
  2. dockerデーモンを再起動する
    デーモンを止めてー、 systemctl stop docker
    設定を読み直してー、 systemctl daemon-reload
    デーモンを上げ直す。 systemctl start docker

    起動後のプロセスをpsコマンドとかで確認して設定の通りになっていればOK。

    $ ps -ef | grep dockerd
    root      1677     1  0 15:04 ?        00:00:20 /usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
    
  3. portainerにEndpointを追加する
    あとはportainerのGUIでEndpoint画面を選択して追加するだけ。
    このときEndpoint URLは サーバBのIPアドレス:2375 で設定する。
    ホストの切り替えは画面左部ペインの ACTIVE ENDPOINT から。

蛇足

これで複数のホストが1画面で管理できるぞやったー。
と思ったけど、ホストが少ない(2つとか)とメリットをあまり感じない。
それぞれにportainer入れても良いような気すらしてくる…

まぁ、こっちの方がちゃんと使いこなしてる感あるし、良いことにする。

セキュリティ面に配慮してきっちりやるのであれば http://docs.docker.jp/engine/security/https.html にあるように、鍵ファイル作ってポートも2376でtls使う方が良いと思う。
けれども、今回はお試しなのでとりあえずこれで。

追記

daemon.jsonへのオプション追加がうまくいかなかった件。
どうも起動時の-Hオプションを削除したうえでdaemon.jsonを書き換えればよかったらしい(あやふや)

この辺りが多分答え。
https://github.com/docker/for-linux/issues/76
https://docs.docker.com/config/daemon/#troubleshoot-conflicts-between-the-daemonjson-and-startup-scripts

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?