Mac版Dockerを使って開発環境の構築

2017年2月4日

Docker Tips テクノロジー

Vagrantを使って手堅くLinux環境をlocalに作って作業してきてたんだが、VirtualBoxの容量を食い過ぎる問題でディスク容量をかなり犠牲にしてきた事もあるのと、 今や本番環境でも必要になってきているDockerを日常で使って慣れておこうという2つの理由から、 開発環境をVagrantからDockerに変更するために、各種手順をメモしておきます。

Mac版Dockerのアプリをインストール

ググると山ほど類似ページが出てくるのだけれど、自分の備忘録としたいので、改めて書いておくことにする。 ちなみに、下記ページが非常にわかりやすく、インストールまでは参考にできます。

アプリゲット

このサイトからインストールイメージをDLできます。

インストール

イメージを開くと書いてある通りの操作でさほど迷いなくインストールができる。 インストールが完了すると、メニューバーにアイコンが現れてこんなウィンドウが表示される。

バージョン確認

$ docker --version Docker version 1.13.0, build 49bf474

イメージget

# nginx $ docker pull nginx:latest #ubuntu $ docker pull ubuntu:latest # centos $ docker pull centos:latest WEB開発であれば上記のどれかで十分かも。 全部pullする必要はなく、必要なものを取得しておきましょう。 そして少し時間がかかりますが、取得したimageは下記コマンドで確認できます。 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest cc1b61406712 4 days ago 182 MB ubuntu latest f49eec89601e 8 days ago 129 MB hello-world latest 48b5124b2768 2 weeks ago 1.84 kB centos latest 67591570dd29 6 weeks ago 192 MB hello-worldはデフォルトで入るやつなので無視してもOK

イメージの起動

$ docker run -d -p 8080:80 --name webserver nginx 45120ab1562211429605943dd258005097eaf7d772014c4a963acd83a175096a 実行後のHASH文字っぽいものは正常に起動できたコンテナIDなのですが、特の覚えておく必要はありません。 起動中のコンテナは以下コマンドで確認できます。 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 45120ab15622 nginx "nginx -g 'daemon ..." About an hour ago Up 5 seconds 443/tcp, 0.0.0.0:8080->80/tcp webserver

ブラウザで確認

http://localhost:8080/ 上記URLをブラウザで開くと、画面に以下の表示になるはずです。 とりあえず、ここまででインストールとコンテナ起動までが完了。

各種操作

コンテナの終了

NAMESを指定して終了できます。 $ docker stop webserver webserver 何もエラーが出なければ問題なし。

psコマンドで確認

$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 無事に消えましたが、-aオプションをつけると $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 45120ab15622 nginx "nginx -g 'daemon ..." 2 hours ago Exited (0) About a minute ago webserver なんか残ってる・・・ これは、Dockerの便利というか比較的わかりにくい仕様で、コンテナはstopしても、何度でも繰り返し使えるという事なんですね。

コンテナの再利用

$ docker start webserver webserver コマンドを見ればさほど難しくないことはわかります。 でも、そもそもちゃんと終了するにはどうすればいいのだろう???

コンテナを破棄する

$ docker rm webserver webserver これで、きれいさっぱりコンテナが消えてなくなりました。 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

残りのタスク

・実際のディレクトリをnginxコンテナを通してブラウザ表示する ・localhostをローカルIPで起動させる ・ポートを8080ではなくて、使いやすい番号で起動

下記ページも参考にしてください

サーバーの仮想技術Dockerを学ぶ #1 サーバーの仮想技術Dockerを学ぶ #2「macにubuntuをセット」

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。