MacOS X への Docker導入
前回ではうっかり余計なことをしゃべりすぎて、操作内容に全く触れずに終わってしまいました。やや反省しております。さくさく行きます。
公式への入り口
こちらの https://docs.docker.com/docker-for-mac/install/ 上の方にある「Download from Docker Hub」をクリックで、以下に飛びます。
https://hub.docker.com/editions/community/docker-ce-desktop-mac
画面右の「Please Login To Download」をクリック。
Docker Hub ユーザ登録
GitHubのような公開リポジトリに、Docker用の各種イメージなどが管理されています。それはDocker Hubという名ですが、接続にはアカウントが必要。さくっと作成します。
ログイン画面にて「Create Account」をクリック。ID、パスワード、メルアドを入力。その下の欄をすべてチェックし、「Continue」クリック。
次の画面にて、国や職業・職種などを選択します。国はちゃんと選択するとして、ほかは深く考えずそれっぽく選べば良いでしょう。少なくとも日本のIT業界では、厳密に仕事内容や職種を限定できない場合が多そうです。
メール認証
登録後、入力したメルアドにメールが来るので、「Confirm 〜」なボタンをクリックし、認証を完了します。
Docker本体のダウンロード&インストール
ここから、Docker for Mac (Docker.app) を導入・実行する工程です。
最初の入り口な画面に戻りますので、Downloadボタンに変わった所をクリック。もうアイツを落としちゃいましたね。いやあ、イケメンですねえ。
dmgをダウンロード完了後、実行します。流れに従い、Applicationフォルダにappファイルをさくっと入れちゃいます。イケメンさんがこのappを起動すると、IDパスワード入力画面が表示されますので、格好いい顔でログインします。
くじら常駐&初期テスト
数秒〜20秒ほどで、くじらなアイコンが、Macのメニューバーに出るかとです。
基本はOS再起動時にも常駐し続けるようですが、念のためアイコンをクリックして、 Preferencesを選択、General設定にて、「Start Docker Desktop when you log in」のチェック済みを確認します。もし空ならばチェックし、いつも動かすのが良いです。そう、いつも一緒だよ。たとえ離れている時間でも。
おためし開始
手始め
ターミナル起動し、コマンド打つべし、です。
以下にて$ docker version
それっぽくバージョンが表示されたら大成功です。乾杯!
以下にて$ docker run hello-world
なんかようこそっぽいメッセージ
略
Hello from Docker!
略
が出ればもう勝ったも同然です。流石イケメンさん!
しかし、もしも以下のような結果になった場合、、$ docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: Service Unavailable.
See 'docker run --help'.
なんか絶望的な気分になりますよね、こういうの。簡単だって言ったじゃないか的な。しぼんじゃいそうです。
この場合はたぶん、あなたは今、FreeなWi-Fiみたいなのを使っているのではないかとです。その場合、MacOSのネットワーク設定で、DNSのIPアドレスを8.8.8.8 にしてみてください。たぶんそれで、ようこそできます。
あるいは、Authがどうとか、なぜかログインできない場合、以下で入り直します。$ docker login
メルアドではなく、IDとパスワードを入れてもう一度トライを。諦めるな!
とりあえずCentOSを起動してみる
以下です。なんとなくCentOSの6にしてみます。$ docker run -it centos:6 bash
ちなみに「:7」にするか、あるいは「:6」を省略すると、最新安定版の7になります。しばらく待つと、bashのシェルが動きます。70MBほどのダウンロードが発生しますが、従来ならば数GBのディスク消費が必要な所、驚きですね。
以下など行い、本当か? だけ見てみてくださいませ。% uname -a
% cat /etc/redhat-release
以下など試して、雰囲気を感じます。% ifconfig -a
% df -h
考えるな! 感じろ!! いや違うぞ、少しくらいは考えろ!!
とりあえず抜けておきます。% exit
以下により、いま持っているイメージ(コンテナ)達の一覧を見れます。$ docker images
centos と hello-world の存在が確認できますね。
試しにNginx動かしてみる
今回は説明をはしょりますが、以下により$ docker run --name test-nginx -d -p 8080:80 nginx
Nginx一式が落ちてきて、ただちに走り始めます。
http://localhost:8080/ へブラウザからアクセスすると、Welcome to nginx! と出ますね。ええ、大成功です。よし、もうパーティしよう。PARTY HARD!!
いま動いているコンテナは以下で確認できます。$ docker ps
とりあえず以下で、いったん止めておきましょうか。お片付けも大切です。$ docker stop test-nginx
以下で、停止しているコンテナも含めた全てを確認できます。君の全てが見たいんだ!$ docker ps -a
今回はここまでとします。
次回へ
もうここまで来たら納得かと思いますが、動かしたいモノを取ってくる定型的な方法さえわかればすぐ、環境構築をできちゃう便利さです。たとえば Ruby on Rails 一式の開発環境も、さくさくと構築できちゃいます。
次からは、もうちょっと具体的にコンテナを扱う方法、それと、環境に手を加えたときにどのように差分を扱うのか、という所に進みます。
ローカルOS上に入れたネイティブのApacheをこねこね設定して動作確認、みたいな準備がアホらしく感じる位に便利。微調整だけで環境作りすぐ出来ちゃうし、何を変えたのかも差分を作れば、説明不要で誰にでも渡せるわけですから。
ちなみに僕はそれほどイケメンではなく、じっくり事を進めるのが好きです。