参考
http://qiita.com/hshimo/items/e24b1fbfbf775ec7c941
http://paiza.hatenablog.com/entry/docker_for_mac
http://www.shoeisha.co.jp/book/detail/9784798141022
環境
ホスト
MacBook
Mac OS X El Capitan ver10.11.6
機種名: MacBook
機種 ID: MacBook8,1
プロセッサ名: Intel Core M
プロセッサ速度: 1.3 GHz
プロセッサの個数: 1
コアの総数: 2
二次キャッシュ(コア単位): 256 KB
三次キャッシュ: 4 MB
メモリ: 8 GB
Docker
https://www.docker.com/
ver1.12.0-a
インストール
公式:https://docs.docker.com/docker-for-mac/
- Download Docker for Mac からdmgファイルをダウンロードしてインストール
- 成功してツールバーにクジラが表示されたら、そこにポップアップされてた以下をとりあえず実行
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.12.0
...(省略)
$ docker version
Client:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built: Thu Jul 28 21:15:28 2016
OS/Arch: darwin/amd64
Server:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built: Thu Jul 28 21:15:28 2016
OS/Arch: linux/amd64
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
バージョン確認
公式に従って
$ docker --version
Docker version 1.12.0, build 8eab29e
$ docker-compose --version
docker-compose version 1.8.0, build f3628c7
$ docker-machine --version
docker-machine version 0.8.0, build b85aac1
Hello World
公式に従って
$ docker run hello-world
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest c54a2cc56cbb 7 weeks ago 1.848 kB
OKなのかな?
Nginx
公式に従って
起動
$ docker run -d -p 80:80 --name webserver nginx
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest c54a2cc56cbb 7 weeks ago 1.848 kB
nginx latest 0d409d33b27e 11 weeks ago 182.8 MB
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ab4544965a83 nginx "nginx -g 'daemon off" 20 minutes ago Up 20 minutes 0.0.0.0:80->80/tcp, 443/tcp webserver
http://localhost にアクセス
イケたっぽい
停止
$ docker stop webserver
webserver
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Dockerホストに入る
参考にしたがって
$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
Welcome to Moby alpha
Kernel 4.4.15-moby on an x86_64 (/dev/ttyS0)
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
moby login: root
Welcome to the Moby alpha, based on Alpine Linux.
moby:~#
# 「Ctrl+a k」で抜けられます
Kitematic
- ツールバーのクジラをクリックして、「Open Kitematic」をクリックします。
- ポップアップの中のリンクをクリックしてzipファイルをダウンロード。
- 解凍して、appファイルを実行。
- Kitematic(Beta)が起動します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest c54a2cc56cbb 7 weeks ago 1.848 kB
nginx latest 0d409d33b27e 11 weeks ago 182.8 MB
kitematic/hello-world-nginx latest 03b4557ad7b9 14 months ago 7.913 MB
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2841afa972c6 kitematic/hello-world-nginx:latest "sh /start.sh" 3 minutes ago Up 3 minutes 0.0.0.0:32768->80/tcp hello-world-nginx
Dockerイメージの操作
CentOSのイメージを取得します
https://hub.docker.com/_/centos/
イメージの取得
イメージ取得コマンド
$ docker pull [オプション] イメージ名[:タグ名]
最新
$ docker pull centos:latest
タグを指定
$ docker pull centos:7
全てのタグのイメージを取得
$ docker pull -a centos
取得先URLを指定
$ docker pull registry.hub.docker.com/centos:7
取得したイメージの確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 970633036444 3 weeks ago 196.7 MB ★
hello-world latest c54a2cc56cbb 7 weeks ago 1.848 kB
nginx latest 0d409d33b27e 11 weeks ago 182.8 MB
kitematic/hello-world-nginx latest 03b4557ad7b9 14 months ago 7.913 MB
イメージの詳細表示
$ docker inspect [オプション] コンテナ識別子orイメージ識別子
$ docker inspect centos
イメージの検索
$ docker search [オプション] 検索キーワード
$ docker search centos
イメージの削除
$ docker rmi [オプション] イメージ名
$ docker rmi centos
イメージのtag設定
centos7のイメージを取得して、Docker Hubのユーザ名でイメージ名mycentos、バージョン1.0でtag設定
イメージの取得
$ docker pull centos:7
取得したイメージの確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 980e0e4c79ec 4 weeks ago 196.8 MB
tag設定
$ docker tag centos:7 <Docker Hubのユーザ名>/mycentos:1.0
tag設定確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 980e0e4c79ec 4 weeks ago 196.8 MB
<Docker Hubのユーザ名>/mycentos 1.0 980e0e4c79ec 4 weeks ago 196.8 MB
この時、tag設定したイメージともとのイメージのIMAGE IDが同じになっていることを確認
イメージのアップロード(Docker Hubにアップロード)
Docker Hubにログインして、アップロード、ログアウトします
Docker Hubにログイン
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: <Docker Hubのユーザ名>
Password: <パスワード>
Login Succeeded
ユーザ名とパスワードはdocker login
コマンドのオプションで指定することも可能です。
$ docker login -u <Docker Hubのユーザ名> -p <パスワード>
Login Succeeded
イメージのアップロード
$ docker push <Docker Hubのユーザ名>/イメージ名[:タグ名]
Docker Hubからログアウト
$ docker logout
コンテナからイメージの作成
Dockerfile
Docker Compose