見出し画像

Dockerとその周辺プラットフォームでラボ環境構築 on Ubuntu20.04LTS

画像は全く関係ないセキュリティ用語擬人化より。最近もちょいちょいネタに走ってるけど更新中。

久々にいろいろ検証が必要な状況に追い込まれてまして。今までは外付けSSDに環境構築とかしてて、それはそれで持ち運び環境としてはとてもよかったのですが、じっくり腰据えてやってる途中に触っちゃって抜ける、とかもあったので、据え置き機器にちゃんとインストールしてみようかなと思いました。モバイルディスプレイも手に入れたので、ちょっと古いMac miniを有効活用するために、メモリとストレージを換装しました。せっかくなので、Ubuntu20.04使ってみようかな!とか思いつきでやってみて、DockerもRancherとかKitematicとか入れて、GUIからもいろいろ便利にできるようにしておいて、大学院の研究室環境のアップデートにも備えてみます。

環境
Mac mini mid 2011(だったはず)
・Intel® Core™ i5-2415M CPU @ 2.30GHz × 4
・メモリ4.7GiB
・ストレージ500GB SATA
無理やりCatalina入れて、その後350GBぐらいのパーティションにデュアルブートでUbuntu20.04LTSをインストールしました。このへんは割愛。

Docker & Docker-compose
DockerはDocker-Composeまで欲しかったので、下記で一発でした。

$ sudo apt install docker-compose
$ sudo gpasswd -a $USER docker
$ sudo reboot
$ docker version
Client:
Version:           19.03.8
API version:       1.40
Go version:        go1.13.8
Git commit:        afacb8b7f0
Built:             Tue Jun 23 22:26:12 2020
OS/Arch:           linux/amd64
Experimental:      false

Server:
Engine:
 Version:          19.03.8
 API version:      1.40 (minimum version 1.12)
 Go version:       go1.13.8
 Git commit:       afacb8b7f0
 Built:            Thu Jun 18 08:26:54 2020
 OS/Arch:          linux/amd64
 Experimental:     false
containerd:
 Version:          1.3.3-0ubuntu2
 GitCommit:        
runc:
 Version:          spec: 1.0.1-dev
 GitCommit:        
docker-init:
 Version:          0.18.0
 GitCommit:
 
$ docker-compose version
docker-compose version 1.25.0, build unknown
docker-py version: 4.1.0
CPython version: 3.8.2
OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020

ELK stack
今回はいろんなログとかを検証する環境を作りたくて、分析ツールとかも全部コンテナでやってみます。githubとかからほとんど持ってこれるので構築自体はそんなに問題なくできました。それこそ10分もかかってないから、コンテナの凄さを感じる。これらのサーバをまともに構築してたら数時間あっという間にかかるんだろうな・・・。以下の本の10章の構成を作ってます。

githubから一式git cloneしたのですが、最初うまく立ち上がらないので確認したところ、composeのymlファイルでなぜかlogspoutのコンテナ部分の記述がなかったのと、logstash.confの設定がtcp送るようになっていなかったので、手動で直してdocker-compose upしましたちょっとしたwebアプリとログ送信関連、それらを集約するkibanaが立ち上がってくれました。

スクリーンショット 2020-08-01 19-51-06

ちょこちょこグラフの設定とかして見た目いじり。楽しい。これでいろいろログ分析できる環境はできそうです。今回はLinux auditをコンテナ環境でいじっていろいろやる予定です。

Rancher
次にRancher入れてみます。前にminikubeを使ったことありますが、minikube自体がメモリ食いつぶしたりして大変だったので、もっと簡易的にコンテナ環境を管理できるプラットフォームを試してみたかった。そもそもminikubeはVirtualBoxにVM作られたりだったので面倒でした。今どうなってるんだろ。

シングルノードで構成なので、とりあえずサーバをコンテナで立ち上げてみます。

$ docker run -d --restart=unless-stopped -p 18080:80 rancher/server

ポートの部分は適宜変更してください。これだけでサーバ立ち上がってきてくれるので、クライアントモジュールのコンテナを動かしてあげれば情報取得できそうです。ホストの追加のところにコマンドがありますが、localhostとかループバックアドレスで指定するとダメなので、ホストのIPを入れて実行したら無事できました。

スクリーンショット 2020-08-01 21-13-43のコピー

コンテナの追加とかいろいろできるみたいです。楽しい。コンテナごとのリソース消費がグラフィカルに見られるのはいいですね。

Kitematic
Rancherあれば別にいいのかなと思いましたが興味本位でdockerのGUI操作ツールKitematicもインストール。これはコンテナでも行けるみたいだけど、Ubuntuのパッケージでインストールしてみました。

一応手順書くと、debパッケージをダウンロードして解凍、インストールみたいな定番のでいけました。一回ひっか

$ sudo unzip Kitematic*.zip$ sudo dpkg -i Kitematic*.deb
依存関係のエラーが出たので一回これ$ sudo apt install -f
もう一回インストールしてみた $ sudo dpkg -i Kitematic*.deb

インストールは簡単でしたが、ここからkaliのコンテナ立ち上げて、起動後に接続しようとしたらエラーで行けなかった。設定みると、ターミナルのパスがxterm指定だったので、gnome-terminalに変更してみたら行けた。けど別ウィンドウだった。まあいいけど。ホスト名とかネットワークとかの設定が簡単にできそうでこれも良さげです。ユーザー分けて権限管理とかしたければRancherの方が機能は多そう。

スクリーンショット 2020-08-02 07-37-38

docker周辺の変化が早過ぎてなかなか追い付いてないですがどんどん便利になってますね。今回のこの作業全部にかかった時間よりnoteで書くほうがむしろ時間かかっているような・・・。まあ備忘録代わりだし。
いままでは結構コンテナがとっちらかりがちでしたが、きちんと整理して使うようにします。


この記事が気に入ったらサポートをしてみませんか?