![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCmm71GH0YuG95u0C87_YlfSdP5tP_3hXOs7t2pTBybMznKHlotSy2QWGcD7eIZLfyUqqRvkqFFaV9mHfCOwAt9pvQ1RYXf1wKE24dPua7UdjbVOCDXMuLgc0EucV61TCk3CAlDec8JUerENhkFDG1T1vxY3zbWLYRrI4TowdwVlcqwU3838zMT-RF/s1600-rw/cloud-computing-2001090_1280.jpg)
Vagrantを使って手堅くLinux環境をlocalに作って作業してきてたんだが、VirtualBoxの容量を食い過ぎる問題でディスク容量をかなり犠牲にしてきた事もあるのと、
今や本番環境でも必要になってきているDockerを日常で使って慣れておこうという2つの理由から、
開発環境をVagrantからDockerに変更するために、各種手順をメモしておきます。
Mac版Dockerのアプリをインストール
ググると山ほど類似ページが出てくるのだけれど、自分の備忘録としたいので、改めて書いておくことにする。
ちなみに、下記ページが非常にわかりやすく、インストールまでは参考にできます。
アプリゲット
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg71ts2yYcanKnSWR54-4MpNB1LxO4lfDCUu-8fchiGKi5d9nt1ySo9HECva3YyepjAYziUhr_mQpefcBuC7AJve2QnxkXIpocARK770OVw2tGFEO93HzYqh9RM_Xmh-6__05BAuOg9OAkoGZBEUF4pubfLj_SVvt8GveaxuVMqUJjCxPugXBxVDv4U/s1600-rw/4-1-5e55da9359bbfb52faaa56f11b29f3fa.png)
このサイトからインストールイメージをDLできます。
インストール
イメージを開くと書いてある通りの操作でさほど迷いなくインストールができる。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT_DfHhcNz_0S8Wsl2RdWCkQSA7ArbF0ydZnM7-nB3IQlLRzG9LryDXXZL1bj48tLY6kWZ7-8Oo6WYbZDXnM7jWsHFcVebSEWndIK0pS01txLQX_UQ97KrfnD7KWjVbu-fPbm-mRvpQ4T9niZr4rAcu96R37-_AhnCA1YfzIs8oLkfvZCxnYUx27pu/s1600-rw/4-2-7ba9963c1adbf793db994c38cb7d04c4.png)
インストールが完了すると、メニューバーにアイコンが現れてこんなウィンドウが表示される。
バージョン確認
$ 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をブラウザで開くと、画面に以下の表示になるはずです。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTnTmwuDQWpB_2ywUMsfIEXNR61y22k3c-9nxQWSKvb44WBedsNrhP_MRQhpECGxFFW7mPYmGrEP06hINPqteMVuxqK1hLEsiJZh6QI-ZVjboS92IBUni_1ySJO276J4yVOxIA0x23fT41U0t4nEfhOY3WHAeidV2Z1494-da4zMiEmxWm9RKZVApK/s1600-rw/4-4-71bb94802868d1323f113b686e0bb2b8.png)
とりあえず、ここまででインストールとコンテナ起動までが完了。
各種操作
コンテナの終了
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をセット」
0 件のコメント:
コメントを投稿