Docker-2
前回に続きDocker。
今週半ばから現場で実際にDockerでの環境構築がスタートしたのでその記録を。
※ちなみに、linux環境設定についてほぼ素人なのでそんなんも知らんのんかい!
っていうのがあるかもしれませんがご了承ください笑
要件としては以下。
特にコンテナのOSについては指定がなかったので、
とりあえず開発環境のサーバとOS合わせとくか的な感じでCentOSの5系をチョイス。
Dockerではイメージと呼ばれるものからコンテナを生成して色々やります。
イメージはDockerHubと呼ばれるGitHub的なもので管理・公開されており、
Dockerが公式で公開しているものと、有志の人が自作したイメージがあります。
(searchコマンドで検索できます。)
今回は公式のものを以下コマンドでローカルに取得。
($〜はターミナル、#〜は起動したlinux内のコマンド)
ちなみに:のあとはタグを指定してます(バージョン的な感じ)。
$docker pull centos:5
上記コマンドでイメージをローカルに取得。
続いて以下コマンドで起動。
$docker run -it centos:5 /bin/bash
-iでターミナルからの入力をコンテナへ、
-tでコンテナの出力をターミナルへ出力することをオプションで指定。
起動後にbashが起動するように末尾に指定。
起動後、viやらwgetやら最初は入ってないみたいなので、
必要なものをyumでインストールしました。
ちなみに、ぽんぽんインストール出来ましたが特に外部ネットワークとの接続とか
設定はしてないです。
で、こまめに保存しながら進めました。
基本的にDockerはコンテナの起動を終了すると、
内部で作業した内容は全て消えます。
イメージの状態を保存するには
#exit or Ctrl+p
でコンテナを抜け、
$docker ps -a
でコンテナの起動履歴を確認します。
起動IDも表示されるので、それを確認し以下commitコマンドで保存。
起動ID 任意のイメージ名 を指定。
$sudo docker commit e69534fd0a04 ikeda/centos5
で以降はこれをこまめに繰り返します。
commit時に設定した名前で再び起動。
$docker run -i -t ikeda/centos5 /bin/bash
#yum list | grep jdk
で確認するとopenjdkしか出てこず、openjdkでeclipseが動くか不安だったので
公式のものを取得。
古いバージョンのものはダウンロード時に認証が
あるため、クッキーを偽装して取得。
#wget --no-check-certificate --no-cookies - --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin
落としたやつを/usr/locale/srcに移動、ファイル名をリネームし
ここで、eclipseを動かすためにはGUI環境が必要なことに気づき
色々ググっているとlinux環境では割とポピュラーな
X Window Systemというのがあるらしく、中でもgnomeというのがいい感じらしので
入れてみることに。
#yum -y groupinstall "X Winodw System"
#yum -y groupinstall "GNOME Desktop Environment"
#yum -y groupinstall "Japanese Support"
最後のやつは日本語入力用のパッケージらしいです。
ちなみに、ーyはダウンロード確認の対話を省略するオプションらしい。
で、途中でNo more mirrors to try的なエラーが出るので
yum clean all して再トライするといけました。
で、必要なものが揃ったので下記コマンドでGUIを実行。
#startx
う、動かない…
rootで実行すると、tty0がないと怒られる。確認すると確かにない…
で、ルートユーザー以外で実行しても同様のエラーが…
GUIで起動する場合には5に設定する必要があるそうな。
で設定ファイルをいじりました。
設定いじったら再起動が必要なのでrebootしてみると
さ、再起動できない…
Dokcerで動かしてるコンテナは基本的に再起動はできないらしい…
んで、さらにググるとXWinods系やらgnomeはライセンスの関係上
Docker上では動作しないらしい…
目の前が真っ暗になった…
で、リーダーの人に相談したら別にcentosじゃなくてもいいっす的な言われたので
linux系でデスクトップがあるといえばubuntuや!と思いubuntuで
再トライをしてみることに。
続く笑