Engineer Llfe Dogear

エンジニアリング活動におけるメモやTipsを書くブログ

Windows環境でVagrantでCoreOSを入れて、Dockerを試した

Dockerを試して見ようと思い調べた結果、CoreOSには標準でdockerが入っているということで、vagrantでCoreOSを入れてDockerを試した手順のメモを残します。 Windows上でのVirtualbox + proxy環境であったため少しだけハマってしまいました。

Virtualboxのインストール

下記サイトより、ダウンロードページに移動し、各OS用のvirutal boxをダウンロードし、インストールする。 今回は, Windows用のものを選択。

Oracle VM VirtualBox

Vagrantのインストール

下記サイトより、ダウンロードページに移動し、各OS用のvagrantをダウンロードし、インストールする。

Vagrant

CoreOSの準備

CoreOSのVagrantのBoxファイルを下記より、git cloneする。

https://github.com/coreos/coreos-vagrant.git

git cloneはSourceTreeをインストールしていたので、SourceTreeのgit環境でcloneしました。

CoreOSの起動

git cloneしたcoreOSファイルのディレクトリにcommand promptで移動し、以下のコマンドを実行。

vagrant up

また、以下のコマンドでvagrantで立ち上げた仮想マシーンの動作状況を確認できます。 coreosがrunning状態になっていればOK。

vagrant status

Vagrantで立ち上げたCoreOSへのログイン

windowsでは、sshでログインするためにはssh クライアントが必要になります。 今回はputtyを利用しました。手順は以下の通りです。

  1. putty.exeファイルとputtygen.exeファイルをダウンロード PuTTY Download Page
  2. puttygen.exeファイルで%USERPROFILE%.vagrant.d\insecure_private_key をpptファイルに変換
    この手順をやらないまま、puttysshの暗号鍵にinsecure_private_keyを指定するとうまくログインできませんでした。
    この手順については以下のサイトを参考にしました。
    SSH to Vagrant box in Windows? - Stack Overflow Putty Unable to Use Vagrant’s Private Key | A Little of Both

  3. puttyでcoreOSにログイン 以下の通りの設定を行い、ログインします。
    ホスト: 127.0.0.1
    ポート番号: 2222
    暗号鍵: %USERPROFILE%.vagrant.d\insecure_private_key.ppt

  4. ログイン画面でユーザ名にcoreを入力してログイン
    通常、vagrantで設定した仮想マシーンにログインする時のユーザ名はdefaultでvagrantになっていますが、 ここでは、coreとなってますので注意。

Dcokerをproxy環境で利用する

この設定を行ったのがproxyがある環境であったため、最初正常にdockerを動作させることができませんでした。 proxy環境でdockerを利用するために以下の手順を実施しました。手順1は必要ないかもしれません。

1. vagrantのproxy用のプラグインの導入
以下のコマンドで、インストール

vagrant plugin install vagrant-proxyconf 

次に、coreos-vagrant/Vagrantfileに以下の設定を追加

Vagrant.configure("2") do |config|
  config.proxy.http     =  "http://proxy.foo.bar:8080"  //任意のproxyホスト+ポート番号
  config.proxy.https    = "http://proxy.foo.bar:8080"  //任意のproxyホスト+ポート番号
  config.proxy.no_proxy = "localhost,127.0.0.1" //任意のアドレス

2. dockerの設定ファイルにproxy設定の追加
まず、docekr.serviceファイルを/etc/systemd/system以下にコピーします

cp /usr/lib/systemd/system/docker.service /etc/systemd/system/

次に、コピーしたdocekr.serviceファイル中のExecStart コマンドの上に以下の記述を追加します。

Environment="HTTP_PROXY=http://proxy.example.com:8080"

最後に、以下で変更内容を反映させます。

systemctl daemon-reload
systemctl restart docker

これらの設定に関しては、以下のサイトを参考にしました。 Customizing docker

Dockerの動作確認

以下のコマンドで、dockerのバージョン確認と、dockerでimage検索(ubuntuを検索)ができるか確認します。正常に動けばOK。

docker -v
docker search ubuntu

今回は、coreOS上でdockerが動作する環境の構築までを行いました。
LinuxMac、proxyがない環境だともっと簡単に環境構築できたのかなと思います。 次は、Dockerの内容に関する記事も書きたいと思います。