Docker

さくさくDocker実践入門 第二回 … 導入

更新日:

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をこねこね設定して動作確認、みたいな準備がアホらしく感じる位に便利。微調整だけで環境作りすぐ出来ちゃうし、何を変えたのかも差分を作れば、説明不要で誰にでも渡せるわけですから。

ちなみに僕はそれほどイケメンではなく、じっくり事を進めるのが好きです。

-Docker
-, , ,

Copyright© Legend stardust, amazing takety's labo. , 2024 All Rights Reserved Powered by STINGER.