LoginSignup
0
2

More than 5 years have passed since last update.

Docker for Macを使ってWebページ表示するまで

Posted at

英語嫌いなりにDocker for Macに挑戦したメモ。
書いておかないと絶対に忘れるのでメモ。
英語苦手マンなので途中翻訳ソフトに頼ってます。

参考記事
Mac OS X へのDockerのインストール方法(※Qiitaの記事です)

インストール

記事通り、Get started with Docker for Macを見に行きます。
上記記事の中で、「Mac用のDocker手に入れてないならInstall Docker for Macで手に入れろ」という指示があるので、その通りにします。

とりあえずEl Capitan以上のMacなら大丈夫な気がしました。
Yosemiteは制限がかかるみたい?

2つのchannel(Stable channel、Edge channel)があります。
多分Stableの方が安定版そうなのでそちらを手に入れました。
リリースは四半期に1回だそうです。
使用統計とその他のデータを送信するかを選択できるとのこと。
※インストール後の設定で、「Send usage statistics」がチェック入ってたのでそれかと思います。

このどちらもに「Docker Engineの実験的機能」がついているようです。
「運用中のアプリで使う場合は切れ」とのことです。
どれなのかは知りません…。

インストールしました。

バージョンチェック

再びGet started with Docker for Macに戻ります。
docker,docker-compose,docker-machineのバージョンを確認しろとのこと。

$ docker --version
$ docker-compose --version
$ docker-machine --version

試してみる

Get started with Docker for Macの続き。
試しにやってみましょう的なのがあるので試します。

ターミナルでコマンド打てばいいっぽい。
dockerの動作を下記コマンドで確認。

$ docker version

あと次のコマンドを実施

$ docker ps
$ docker run hello-world

これでちゃんと動いているかどうかがわかるらしい。
hello-worldをrunして、下みたいなメッセージが出たらOK

Hello from Docker!
This message shows that your installation appears to be working correctly.

もっとしたい場合はこう。
nginxをポート80でやる?みたいなやつ。

$ docker run -d -p 80:80 --name webserver nginx

http://localhostへ行けというのでアクセス。
出ない(´・ω・`)
どうしましょうね…。

と思ったら何回かやったらできました。
原因は不明ですが、ちょっと遅いみたいです。

で、この時点でdocker psをしていると、前述のコマンドのnameオプションで指定したwebserverが動いていることがわかります。
(コンテナ名がwebserverになっています)

どうやらrunはコンテナを立ち上げてくれるようです。
nameオプションでコンテナ名,
pオプションでポートを指定できるようです。
dオプションはバックグラウンドで起動だそうです。
参考:docker コマンド チートシート

コンテナの停止コマンド及びコンテナの削除コマンドを打たない限り、ずっと起動するようなので、停止してみます。

$ docker stop webserver

※再び始めるときはdocker start webserver

docker ps -aを打つと、停止中のコンテナを含めて確認できます。
コンテナを削除をする場合、↓のように打つ。
※runコマンド実行時に同じコンテナ名があるとエラーになります。

$ docker rm -f webserver

これで消してもnginxのイメージは消えないそうです。
…イメージ?(別途調べて記事にするかも?)
いろんなサイトを斜め読みしてみましたが、

コンテナ:イメージを元に作られた環境
イメージ:コンテナの元
みたいな印象です。

そのイメージとやらの確認は

$ docker images

これ打って知りましたがhello-worldはイメージってやつのようです。
これが消えないのは、再利用するためみたいです。
(ない場合はDocker Hubからpullしてる?っぽいです多分)

イメージを消したい場合は、

$ docker rmi [イメージID or イメージ名]

イメージIDとイメージ名はdocker imagesで確認できます。
今回はdocker rmi nginxで実施しました。

これ以外にもサンプルがある様子。
困ったらやろう…。

Docker for Macの設定について

今回入れたのはStableなのでそれに関連するものだけ。

General

アプリの自動起動とか、バックアップとかの設定。
なんかEdgeリリースでは、DockerログインをMacOSキーチェーンに安全に保存するための追加オプションがあるらしいです。
Stableはなし。(無効にできない)

Start Docker when you log in

ログイン時にDockerを自動起動するようになっている。
セッションを開いた時にDockerを起動しない場合はチェックを外す。
今回は外しました。

Automatically chack for updates

アップデートを自動化するか(チェックすると自動アップデート)。
これはチェックしたまま。

Exclude VM from Time Machine backups

Time MachineがDocker for Macの仮装マシンをバックアップするかどうか(チェックするとバックアップするっぽい)。
これはデフォルトのまま、チェックしない。
とりあえずバックアップいらない。

Send usage statistics

Dockerに使用状況を送る。
とりあえず外しました。

File sharing

Mac上のどのフォルダとコンテナを共有するか。
よくわからないのでデフォルトままにしておきます。
とりあえずプロジェクトが/Usersの外にあるとダメなので、その場合は共有しろってことみたいです。

Advanced

CPUとかメモリとか決めるところ。
ディスクイメージの格納場所を選択できるようです。
まあ特にいじらなくていいかも。。。

Proxy

HTTPのプロキシ設定をするところ。
ここもとりあえずはいじらないことに。

Docker Daemon

Dockerデーモンのコンテナの実行時のオプションが設定可能。
(とりあえず英語読むの大変なので必要になったら読みます)

Uninstall/Reset

Dockerのアンインストールか、
初期インストールの状態に戻す。

DockerでWebページを動かすまで

参考
docker の nginx イメージの設定ファイルを眺めながら、独自ページを表示します。

dockerのコンテナにアクセスします。
(execがわからなかった…)

$ docker run -d -p 80:80 --name webserver nginx
$ docker exec -it webserver /bin/bash

/etc/nginx/conf.d/default.confでrootを確認する。
参考サイト通り/usr/share/nginx/htmlがrootディレクトリであることを確認。

参考サイトではコンテナ内でHTMLファイルをいじってましたが、
ローカルで作ったものをコンテナに上げたいので、
一旦exitします。

$ docker cp [ローカルファイル名] webserver(コンテナ名):[コンテナ保存先パス]

ワイルドカードは対応してないようです。
な、なんだってー(・o・)

もしかしたら
Git管理
→リモートリポジトリにpush
→コンテナexec
→コンテナ内でpull
とかの方が楽なのかも。

そのうちgitとか入れてやってみます。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2