経緯
久しぶりに個人開発環境の構築をしたかったのでメモ。
以前はVagrantを使っていたが、OSのバージョンアップなどにより
うまく動かなくなっていたので、Dockerを試してみることに。
環境
mac OS X Sierra 10.12.1
前提条件
brew 導入済み
http://brew.sh/index_ja.html
virtualbox導入済み
http://www.oracle.com/technetwork/jp/server-storage/virtualbox/downloads/index.html
手順
dockerインストール
$ brew install docker
docker machine をインストール
$ curl -L https://github.com/docker/machine/releases/download/v0.8.2/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \
chmod +x /usr/local/bin/docker-machine
docker machine のバージョンを確認
$ docker-machine version
仮想環境を作成してみる
$ docker-machine create --driver vmwarefusion <ホスト名>
--driver virtualboxなども指定できるので、適切なものを指定します。
https://docs.docker.com/machine/get-started/
確認
用意した仮想環境は下記コマンドで確認可能です。
$ docker-machine ls
仮想環境に設定されている環境変数は下記コマンドで確認可能です。
環境変数として設定する
$ eval "$(docker-machine env <ホスト名>)"
dockerコマンドを試してみる
$ docker $(docker-machine config <ホスト名>) run centos:7 echo hello-world
立ち上げたホストにsshで接続する
$ docker-machine ssh <ホスト名>
コンテナ起動してみる
開発はコンテナ内で行うことになります。
sshしたあとに下記のようにrunコマンドを実行します。
docker@test:~$ docker run -it centos /bin/bash
[root@84b3f502f152 /]
するとコンテナが立ち上がって移動します。
上記の場合は予めダウンロードしておいたcentosのイメージをいれています。
イメージの確認は下記コマンドで。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0584b3d2cf6d 5 weeks ago 196.5
コンテナ内で作業を再開したい時
docker psコマンドでコンテナの確認をします。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
84b3f502f152 centos "/bin/bash" 3 minutes ago Exited
先程立ち上げた、コンテナがあります。
コンテナは一度抜けると停止状態となっているので
$ docker start <CONTAINER ID>
で立ち上げてから、
$ docker attach <CONTAINER_ID>
としましょう。作業を再開することができます。
作業した内容をイメージとして保存しておきたい
$ docker commit <CONTAINER_ID> <TAG>
確認する際は下記コマンドで。
$ docker images
これで環境構築はできました。
あとは好きなように弄ったり潰したり。
また、立ち上げた仮想環境を停止したり再開したりするには
$ docker-machine stop <ホスト名>
$ docker-machine start <ホスト名>
で可能です。
詳細なdocker-machineコマンドは下記から確認してみてください。
https://docs.docker.com/machine/reference/