Fact of Life

音楽と食とビールが好きなWebエンジニアのブログ

Docker for Macを使ってDockerの感覚を掴もうと試みた

スポンサーリンク

同じマシンで様々な環境構築をしているとごちゃごちゃになって動かないとか弊害が起こってきますよね。そのために仮想環境の構築があったりしますが、OSイメージをコピーとかよりももっと小さな単位での仮想環境が作れれば・・

しばらくサーバサイドから離れていましたが、どうやら最近はみなさんDockerを使っているんですね。かなり遅れていますが、使ってみることにしました。

Docker for Macのインストール

以前は仮想環境上(Virtual BoxやVagrant)でしかDockerは動かなかったようですが、今は「Docker for Mac」を入れればローカル環境でスムーズに構築できるようです。ということで、インストールしてみます。

Docker for Macのダウンロードページからダウンロードをし、インストールしてください。

「Docker for Mac」を起動すると、右上にDockerアイコンが表示されます。

Dockerを使ってみる

インストールが完了したので早速Dockerを使って仮想環境を作ってみましょう。

Dockerイメージを取得

Dockerのイメージは、Docker Hubにある公式リポジトリからイメージを選んで作成ができます。今回はphpリポジトリからイメージを取得してみます。

$ docker pull php
Using default tag: latest
latest: Pulling from library/php
6a5a5368e0c2: Pull complete
de059afc6b5d: Pull complete
9b1ac0143753: Pull complete
d8243d976fb4: Pull complete
13efd5eb9df1: Pull complete
7aa17702ca36: Pull complete
197fb8b2c73d: Pull complete
Digest: sha256:2da79eabd2f0bbd8c27ce16a3f2f931667a58f5a613d1e5174e801f80db6e9f6
Status: Downloaded newer image for php:latest

docker pull [イメージ名]は最新のイメージを取得するコマンドです。指定バージョンのイメージを取得する場合は特定のタグを付けます。

docker pull php:7.1.0RC3-alpine

次に、イメージが作成されているかを確認してみます。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
php                 7.1.0RC3-alpine     e99712baec43        5 days ago          63.43 MB
php                 latest              43418939e90f        12 days ago         362 MB

無事作成されていました。

Dockerコンテナの作成

イメージを取得したら、次はそこからDockerのコンテナを作成してみましょう。docker run -it [REPOSITORY]で作成と同時に起動します。

$ docker run -it php
Interactive shell

php >

無事起動しましたので、とりあえず何か書いてみます。

php > echo 'Hello PHP!!';
Hello PHP!!

PHPが実行されましたね。では、コンテナからの接続を終了します。

php > exit

Dockerイメージとコンテナの削除

作成したDockerのイメージとコンテナを削除します。まずはDockerイメージを削除してみましょう。

$ docker rmi php
Error response from daemon: conflict: unable to remove repository reference "php" (must force) - container 2ea0298a2998 is using its referenced image 43418939e90f

Dockerコンテナが存在しているため、エラーが出てしまいました。削除する順番はコンテナ→イメージのようですね。コンテナを確認し、削除します。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
2ea0298a2998        php                 "php -a"            3 minutes ago       Exited (0) 3 minutes ago                       clever_hodgkin

$ docker rm 2ea0298a2998
2ea0298a2998

Dockerコンテナの確認はdocker ps -a(オプションの-aは起動していないコンテナも含んで表示)で行います。また、docker rm [CONTAINER ID]でコンテナの削除が可能です。

最後にDockerイメージの削除を行います。

$ docker rmi php
Untagged: php:latest
Untagged: php@sha256:2da79eabd2f0bbd8c27ce16a3f2f931667a58f5a613d1e5174e801f80db6e9f6
Deleted: sha256:43418939e90f6a71eb4196e89e1105b0ecb8011be10cba2253d080e9f074fe83
Deleted: sha256:31b263c72f99646be58e262e74804e0389ca83419b0b64f4b7d80c61952a925f
Deleted: sha256:273395fe3a6725728098b2dd88577a6894b4985048b466e3a91ca6fa1a1a24f3
Deleted: sha256:62b6281b0e361c526dcb2fba8090ceaaf3f6f6e11c3b6a1fdb483adcf675fb63
Deleted: sha256:e28ef65460ac2a15c79286c42f3c24c814569d4dba7b83a0d0881dc07f16fae7
Deleted: sha256:383a7378a836c1cefa5ee256ec02abab4ad8502e129a8f8e89d31725dfa78254
Deleted: sha256:342d98f152771db41ef6fb83be1fb0947e746731ee1e5ca22e9112c7a5b652bb
Deleted: sha256:142a601d97936307e75220c35dde0348971a9584c21e7cb42e1f7004005432ab

無事削除されました。

Docker for Macのアンインストール方法

あまり使用する機会もないですが、「Docker for Macのアンインストール」もやってみました。

デスクトップ右上のDockerアイコンをクリックし、「Preferences…」をクリックします。設定画面の「Uninstall / Reset」からアンインストールができます。

まとめ

実際に使ってみてみた感想ですが、正直PHPの仮想環境だけでは良さはわかりませんでした。やっぱり他のDockerコンテナと繋いでみると感覚は掴めるかもしれません(nginx + PHP + MySQLとか)。

Dockerで一通りの環境構築を行なったら、また記事にしようと思います。