Macでdockerを使って使い捨ての環境を作成する

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 件のコメント :

コメントを投稿