Docker入門日誌-その1- Hello World編

ebiです。気付けば社会人2年目になりました。手が空いたので玄人がすなる Docker といふものを我もしてみむとするなり。

Docker環境を整えてみた

情報収集

RPGなら酒場。現代社会ならGoogleです。
僕がWindowsユーザなこともあって、安直に「windows docker」と魔法を唱えてみました。

どうやら割と最近、Docker for Windowsなるものがリリースされていたようです。
さっそく公式サイトからダウンロードしてインストールを試みました。

なんかダイアログが出てきた。

HyperV is not available on Home editions. Please use Docker Toolbox

ん?どういうことだ??

……Windows10のHomeエディションは対象外らしいです(公式FAQ

-完-

……という夢を見たんだ

気を取り直してToolboxをインストールします

公式サイトはこちらです。

Fullでインストールしちゃいます。

全部チェックします。

インストールが終わると、「Docker Quickstart Terminal」って言うファイル入りのフォルダが出てきたはずなので、それを実行する。
ひたすら許可しまくる。

最終的に端末でくじら君が描写されたら完了です。

ここまでの話は、Windowsの代わりに Docker を動かすホストを Docker Machine を使って、VirtualBox上に default と言う名前で作ったよ。ってところです。

スタート時の環境は人それぞれだと思うので、あまり解説は入れてませんが悪しからず。

ついでに

いつも開発環境として使っている、VirtualBox で動かしている Ubuntu 側も Docker の環境を整えておこうとしたら、ネットワーク設定が消し飛んで使えなくなってました。 VirtualBox を再インストールしたら動いたので無問題です。

無事 Ubuntu を起動したら、公式サイトに載ってるコマンドを一通り連打してたら、使えるようになってました。意味はあまり分かってません。

Hello Docker

実行編

Docker にも Hello World があるようです。やってみましょう。

Windows の代わりに Docker を動かしてくれる Docker ホストが用意できたので、コマンドプロンプトを起動すると Windows でも無事 docker のコマンドが打てるようになるのです。先に 動いているDockerホスト の情報を見ます。

docker-machine ls

default という名前で Docker ホストくんが動いていることが確認できます。
停止する時は

docker-machine stop default

起動する時は

docker-machine start default

です。

いよいよ初 docker run をしてみます。ドキドキ……。

docker run hello-world

Post http://127.0.0.1:2375/v1.20/containers/create: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..

(゚Д゚)ハァ?

どうやら環境変数周りのお話のようです。

docker-machine env default

を実行します。

REM Run this command to configure your shell:
REM @FOR /f “tokens=*” %i IN (‘docker-machine env default’) DO @%i

こんな感じで出てくるメッセージの最後の行のコマンドをコピペして実行してから、再度リベンジすると動きました。やったー。

一旦まとめ

公式で用意されている hello-world イメージ(コンテナの元)を利用して、 hello-world 用のメッセージが出てくるコンテナを起動するところまでやってみました。

動き続けている Docker コンテナは

docker ps

で一覧を見ることができるのですが、実行しても hello-world の名前は出てきません。

docker ps -a

をすると、コンテナのリストが出てきます。 docker run はイメージからコンテナを作る作業なので、docker run を繰り返すと、気付けばここにゴミが溜まってきちゃいます。注意してください。

オプションを付けて、色々な起動の仕方をするようですが、そのへんは追々慣れるもんなんですかね。

ちなみに

docker --help

docker run --help

でヘルプを表示できるのです。

長くなりそうなので、実用的な Docker の使い方を試してみるお話は、次回の記事に回そうと思います。

関連記事(Docker)

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

ebi

1993年生まれ。宮崎出身。2016年に新卒のWEBエンジニアとして入社。慶應SFCの関係者が多い弊社ですが、僕は早稲田卒です。大学時代は情報系も混じった学科でしたが、結局専攻にはせず。エンジニア経験値不足のため、日々修行中です。趣味はダーツ・ビリヤード等。

ebiの書いた記事

インフラ
Docker入門日誌-その3- Rails開発編

2017年05月25日

BPSアドベントカレンダー

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ