16
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacでDockerを使ってみる

Last updated at Posted at 2015-08-30

どうも
今回はタイトル通り、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.インストールするときにパスワードを要求されると思うので入力します

スクリーンショット 2015-08-30 9.20.29.png
 
 
 

6.Closeを押して終了ですが、Quick-Startにこれからやることが書いてあるので閉じないままでも大丈夫です

スクリーンショット 2015-08-30 9.21.10.png

 
 
  
  

Dockerを始める

先ほどの工程でインストール自体は終了したので、次は実際に使っていこうと思います  

1.アプリにDocker Quickstart Terminalがあると思うのでそれを起動します

スクリーンショット 2015-08-30 9.33.59.png

2.Terminalが立ち上がる

このDocker Quickstart Terminalが行っていることは

  • ターミナルを立ち上げる
  • 「default」というVMを作成する、もし既にそのVMがあればそれを起動する
  • ターミナルからVMを操作できるように設定する

最終的に以下の様な画面が現れます

スクリーンショット 2015-08-30 9.44.28.png

この画面が出たら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

スクリーンショット 2015-08-30 9.53.17.png

STATEがStoppedになっていれば起動していない状態です
この状態でdockerコマンドを使っても文句を言われるだけだと思います

もし停止していない場合は

docker-machine stop default

docker-machine stop VM名
で終了して下さい

Docker MachineでVMを起動する

VMを立ち上げていきます

起動するのは先ほど作ったdefaultです

コマンドは以下になります
docker-machine start default

docker-machine start VM名

スクリーンショット 2015-08-30 9.57.41.png

これで起動はされましたが、まだこれでは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

スクリーンショット 2015-08-30 10.01.39.png

最後に書かれている

eval "$(docker-machine env default)"

を実行して

docker run hello-world
でDocker Quickstart Terminalで実行した時のように結果が出れば完了です

次にNginxを起動してみようと思います コンテナの検索は `docker search コンテナ名` で可能です

ではNginxを探していきましょう

docker search nginx

スクリーンショット 2015-08-30 11.05.30.png

この下にも色々続きますが先頭のOFFICIALが付いているものを使います

runしてみましょう
docker run -d -P --name web nginx

これで起動すると思うので
以下のコマンドで起動しているか確認します
docker ps

スクリーンショット 2015-08-30 11.25.24.png

このようになっていたら次に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」

上記のアドレスをブラウザに入力すると

スクリーンショット 2015-08-30 11.29.38.png

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などを立ち上げて何度も同じ環境が作れることを確かめてみたいと思います
では

16
17
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
16
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?