Macで現在の環境をあまり汚さずに新しいサービスなどを試したい時に、使い捨ての環境を作成できると便利です。
大体の事はLinuxでも同じようにできると思うので、Dockerを使ってできないかと思いました。
## MacにDockerをインストールする
実際には[ここ](https://docs.docker.com/docker-for-mac/install/)のリンクからDockerをインストールしてアプリケーションフォルダに突っ込むだけでOK
インストール後にコマンドを実行した結果は下記のようになりました。
```bash
$ docker --version
Docker version 17.06.2-ce, build cec0b72
$ docker-compose --version
docker-compose version 1.14.0, build c7bdf9e
$ docker-machine -version
docker-machine version 0.12.2, build 9371605
```
## ちょと動くか試してみる(nginxが動作するか試す)
[公式サイト](https://docs.docker.com/docker-for-mac/)にnginxを動かす方法が書いてありました。
しかし下記のようになってしまいうまく動かす事ができません。
```bash
$ docker run -d -p 80:80 --name webserver nginx
Unable to find image 'nginx:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/manifests/latest: unauthorized: incorrect username or password.
See 'docker run --help'.
```
調べてみると下記のコマンドでdocker cloudにログインしておく必要があるようです。
```
$ docker login
```
その後は問題なく実行する事ができました。
```
$ docker run -d -p 80:80 --name webserver nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
94ed0c431eb5: Pull complete
e3dfa7964776: Pull complete
a8c87b775251: Pull complete
Digest: sha256:c607df414f858a17ebb159a3e2c76931086da860760763812a81784bbabf1482
Status: Downloaded newer image for nginx:latest
49d9b9a0ee344a77050a8b6bfc272c201f19571066197e1a499cdaf6503c423a
```
実行後、ブラウザでlocalhost:80にアクセスするとnginxの画面が表示されました。
この後はDockerを使っていよいよ使い捨ての環境を作成します。
## 使い捨ての環境構築
[ここ](http://qiita.com/ahaha0807_alg/items/a9b51ec238440ef341f1)に書いてあるjson-serverを使い捨て環境に構築して見ます。
使い捨てなので、後から簡単に削除できますし。
まずはubuntuを起動します。
```bash
$ docker run -it --name ubuntu1 ubuntu /bin/bash
```
ここからubuntuのbashでの作業です(rootで行います)
必用なモジュールをapt-getなどでinstallしてください。
```
root@hogehoge:/# apt-get update
root@hogehoge:/# apt-get install npm
:
```
nodeとかnpmとかinstallしたら, json-serverをインストールしてdb.jsonをどこでも良いので作成します。
(作成したディレクトリで実行するのでどこでもOKなようです)
作成した環境をMacと繋げるには、ポートフォワーディングの設定をする必要があります。
後から設定するのは、難しそうだったので、ここまでのdcokerイメージを作成してrunし直すことにします。
一旦コンテナを停止してから、下記のコマンドでdcokerイメージを作成します。
```
$ docker commit [container_id] hogehoge/json-server
```
コンテナIDは下記のコマンドで確認できます。
```bash
$ docker ps -a
```
dockerイメージを作成したら、ポートを開けた状態でrunします。
```bash
$ docker run --name testserver -itd -p 3000:3000 hogehoge/json-server
$ docker exec -it [container_id] bash <- bashにログインしてjson-serverを起動する
```
これで, Macのブラウザからdockerのポート3000にアクセスできるようになりました。
動作中のdockerに対してポートフォワードの設定もできるようですが、やり方がよくわからなかったので、また調べたら記事にしたいと思います。
## 使い終わった環境の削除
使い終わったら環境を削除すれば綺麗さっぱりです。
```bash
$ docker stop [container_id]
$ docker rm [container_id]
```
## 使い終わったイメージの削除
現在のイメージのリストは下記のコマンドで確認できます。
```bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hogehoge/json-server latest e2de7e8278e0 3 hours ago 619MB
nginx latest 0b5dec81616c 3 days ago 108MB
ubuntu latest ccc7a11d65b1 4 weeks ago 120MB
```
下記のコマンドでIMAGE IDを指定して削除しましょう。
```bash
$ docker rmi [image_id]
```
0 件のコメント :
コメントを投稿