どうも
今回はタイトル通り、MacでDockerを使っていきたいと思います
公式のインストール方法を参考にやっていきます
Docker Install Mac OS X
以前はboot2dockerを使っていたと思いますが、最近はDocker-Machineというものを使うのが流行りっぽいです
ではインストールしていきましょう
インストール手順
1.[Docker Toolbox](https://www.docker.com/toolbox "Docker Toolbox")ページに行く
2.インストールリンクを押してダウンロードする ![スクリーンショット 2015-08-30 9.13.30.png](https://qiita-image-store.s3.amazonaws.com/0/36871/01cb315e-b6cc-9451-a29f-73cf5e43d925.png "スクリーンショット 2015-08-30 9.13.30.png") 今回は、Download(Mac)の方ですね
3.ダウンロードが完了したら`pkg`ファイルをダブルクリックして、Install Docker Toolboxのダイアログを開きます ![スクリーンショット 2015-08-30 9.18.06.png](https://qiita-image-store.s3.amazonaws.com/0/36871/536d68cb-3546-c917-c6cc-c5d190c968cd.png "スクリーンショット 2015-08-30 9.18.06.png")
4.ダイアログに表示されている「Continue」を押してインストールを開始します
5.インストールするときにパスワードを要求されると思うので入力します
6.Closeを押して終了ですが、Quick-Startにこれからやることが書いてあるので閉じないままでも大丈夫です
Dockerを始める
先ほどの工程でインストール自体は終了したので、次は実際に使っていこうと思います1.アプリにDocker Quickstart Terminalがあると思うのでそれを起動します
2.Terminalが立ち上がる
このDocker Quickstart Terminalが行っていることは
- ターミナルを立ち上げる
- 「default」というVMを作成する、もし既にそのVMがあればそれを起動する
- ターミナルからVMを操作できるように設定する
最終的に以下の様な画面が現れます
この画面が出たらdockerコマンドが使えます
3.hello-worldコンテナを実行する
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
511136ea3c5a: Pull complete
31cbccb51277: Pull complete
e45a5af57b00: Pull complete
hello-world:latest: The image you are pulling has been verified.
Important: image verification is a tech preview feature and should not be
relied on to provide security.
Status: Downloaded newer image for hello-world:latest
Hello from Docker.
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(Assuming it was not already locally available.)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
これでhello-worldコンテナを実行しました
しかし、わしゃiTermが使いたいのう…いちいちアプリ起動するのは億劫じゃ…
なにかいい方法はないかのぅばあさん
あんべ
とういことで
ShellからDockerを使う
確認として現在はVMが何も立ち上がっていない状態とします VMが立ち上がっているかの確認はdocker-machine ls
STATEがStoppedになっていれば起動していない状態です
この状態でdockerコマンドを使っても文句を言われるだけだと思います
もし停止していない場合は
docker-machine stop default
docker-machine stop VM名
で終了して下さい
Docker MachineでVMを起動する
VMを立ち上げていきます起動するのは先ほど作ったdefaultです
コマンドは以下になります
docker-machine start default
docker-machine start VM名
これで起動はされましたが、まだこれではDockerコマンドを使えません
「Started machines may have new IP addresses. You may need to re-run the docker-machine env
command.」
新しいIPアドレスになってるからdocker-machine env
を実行してくれよ
と書かれています
実行してみましょう
envの後に引数(VM名が必要です)
docker-machine env default
最後に書かれている
eval "$(docker-machine env default)"
を実行して
docker run hello-world
でDocker Quickstart Terminalで実行した時のように結果が出れば完了です
ではNginxを探していきましょう
docker search nginx
この下にも色々続きますが先頭のOFFICIALが付いているものを使います
runしてみましょう
docker run -d -P --name web nginx
これで起動すると思うので
以下のコマンドで起動しているか確認します
docker ps
このようになっていたら次にNginxのページにいってみます
ローカルのポートとcontainerのポートを8080:80のように指定していないので
docker-machine env default
でDOCKER_HOSTのIPを確認します
僕の場合は「192.168.99.100」
となっていたので
docker port web
で確認した80番ポートの数字、僕の場合は32781を合わせ
「192.168.99.100:32781」
上記のアドレスをブラウザに入力すると
Nginxが起動しているのが分かります
コンテナを終了させたい時は
docker stop web
で終了できます
先程は初回だったのでdocker run -d -P web nginx
と指定しましたが
次からは
docker start web
とすれば起動できます
今回使ったコマンド(載せてないものも)
- docker-machine ls - VMの確認
- docker-machine start VM名 - VMの起動
- docker-machine env VM名 - VMの環境確認
- docker-machine ip VM名 - IPアドレス確認
- eval "$(docker-machine env default)" - ローカルとVMを繋げる
- docker build -t ユーザ名/イメージ名 DockerfilePath
- docker push ユーザ名/イメージ名
- docker search コンテナ名 - コンテナを探す
- docker run コンテナ名 -
- docker start コンテナ名
- docker stop コンテナ名
- docker ps
- docker port コンテナ名
- docker rm コンテナ名
- docker rmi イメージ
- docker-machine stop VM名
こんな感じです
途中から雑になってきましたが一旦上げておきます
今度はMySQLなどを立ち上げて何度も同じ環境が作れることを確かめてみたいと思います
では