Docker for Macをインストール

2019年7月17日水曜日

Docker Mac

t f B! P L

Docker for Macをインストール

DockerをHomebrewでインストールします。以下のコマンドを入力してDockerをインストールします。

ちなみに、「Docker=ドッカー」と読みます。

brew install docker

続いて、DockerのGUIアプリケーションをインストールします。以下のコマンドを入力します。

brew cask install docker

インストール完了後、「docker was successfully installed!」が表示されれば、インストール成功です。

「docker was successfully installed!」が表示されれば、インストール成功

Docker for Macを起動する

インストールが完了すると、MacのアプリケーションにDockerのアプリが追加されます。アイコンをダブルクリックしてDockerを起動しましょう。

MacのアプリケーションにDockerのアプリが追加されます

初回起動時のみ、次のイメージのような警告メッセージが表示されます。 [開く] をクリックしてアプリを起動しましょう。

警告メッセージで開くをクリック

いくつか確認メッセージが出た後、管理者パスワードの入力を求められるので、入力しましょう。

管理者パスワードを入力する画面

Dockerが起動されると、MacのメニューバーにDockerのアイコンが表示されます。また、起動と同時にDocker Hubのアカウントを求められますので、ログインしておきましょう。Docker Hubアカウントを持っていない場合は、こちらからアカウントを作成してください。

enter image description here

メニューバーのDockerのアイコンをクリックすると、Dockerのメニューが表示されます。Docker起動中は、次のイメージのように 「Docker Ddesktop is running」 と表示されます。

enter image description here

コンテナを起動する

Dockerを起動したら、基本の「hello-world」コンテナを起動してみましょう。以下のコマンドを入力してコンテナを起動します。

docker run hello-world

以下のようの「Hello from Docker!」と表示されれば、起動成功です。

hello-worldコンテナ起動後の画面

Docker for Macを終了する

Docker for Macを終了するには、メニューバーから [Quit Docker Desktop] を選択します。

Docker for Macを終了するには、メニューバーから Quit Docker Desktopを選択

Dockerコンテナを停止する

先述した「hello-world」コンテナは、起動時にメッセージを表示してすぐに停止するため、明示的に停止する必要はありませんでした。しかし、nginxなどのコンテナの場合、明示的に停止コマンドを発行するまで、コンテナは起動し続けます。

コンテナを停止するには、以下のコマンドを使用します。

docker stop <CONTAINER ID>

停止するコンテナのCONTAINER IDを検索する

停止するコンテナの<CONTAINER ID>が分からない場合は、次のコマンドで探します。

docker ps

Dockerのコンテナを削除する

コンテナの削除には、以下のコマンドを使用します。削除するコンテナの<CONTAINER ID>を指定してコンテナを削除します。

docker rm <CONTAINER ID>

削除するコンテナのCONTAINER IDを検索する

削除するコンテナの<CONTAINER ID>が分からない場合は、docker psを使用します。。-aオプションを付けると、停止中のコンテナも検索できます。

docker ps -a

【docker psの実行結果】

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
a507ad98e180        hello-world         "/hello"            15 hours ago        Exited (0) 15 hours ago                       relaxed_lewin

すべてのコンテナを削除する

コンテナの起動を繰り返していると、知らぬ間にコンテナが大量に作成され、docker ps -aでコンテナ一覧を確認すると、大変なことになっている事がよくあります。そんな時に便利なのが、すべてのコンテナを削除するコマンドです。

以下のコマンドを入力する事で、Dockerのすべてのコンテナを削除できます。

docker rm $(docker ps -aq)

Dockerのイメージを削除する

docker rmでコンテナを削除しただけでは、Dockerイメージまでは削除されません。Dockerのイメージをするには、以下のコマンドを使用します。<IMAGE ID>を指定してコンテナを削除します。

docker rmi <IMAGE ID>

削除するイメージのIMAGE IDを検索する

削除するコンテナの<IMAGE ID>が分からない場合は、次のコマンドで探します。

docker images

【docker imagesの実行結果】

REPOSITORY       TAG        IMAGE ID        CREATED             SIZE
hello-world      latest     fce289e99eb9    6 months ago        1.84kB

イメージの削除時にエラーになる場合

docker rmiコマンドでイメージを削除する時に、以下のようなエラーが表示されることがあります。このメッセージは、削除するイメージのコンテナが、起動または停止中で残っている場合に表示されるメッセージです。

Error response from daemon: conflict: unable to delete fce289e99eb9 (must be forced) - image is being used by stopped container 9f128e7b5c6b

強制的にイメージを削除する場合は、force(-f)オプションをつける事で削除できます。

docker rmi -f <IMAGE ID>

すべてのイメージを削除する

Dockerからすべてのイメージを削除するには、以下のコマンドを使用します。
全部消えるので、注意して使いましょう。

docker rmi -f $(docker images -q)

Docker for Macでよく使うコマンド

ここからは、Docker for Macでよく使うコマンドを紹介していきます。

Dockerのバージョンを確認する

Dockerのバージョンを確認するコマンドです。

docker --version

起動中のコンテナを表示する

Dockerで起動中のコンテナの一覧を表示するコマンドです。

docker ps

【実行結果】

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES

「hello-world」コンテナは、メッセージを表示したら終了するコンテナのため、起動中のコンテナには表示されません。

停止中のコンテナも含めてコンテナの一覧を表示する場合、-aオプションを指定します。

docker ps -a

【実行結果】

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
a507ad98e180        hello-world         "/hello"            40 seconds ago      Exited (0) 38 seconds ago                       relaxed_lewin

保存されたコンテナイメージを表示する

ローカル環境に保存した、コンテナイメージを一覧表示するコマンドです。

docker images

【実行結果】

REPOSITORY    TAG     IMAGE ID      CREATED       SIZE
hello-world   latest  fce289e99eb9  6 months ago  1.84kB

Dockerの情報を取得する

Dockerについての情報を取得するコマンドです。

docker info

【実行結果】

Containers: 3
 Running: 0
 Paused: 0
 Stopped: 3
Images: 1
Server Version: 18.09.2
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
~~以降省略~~

終了時にコンテナ自動的に削除 (–rm)

終了時にコンテナを自動的に削除するには、--rmを使用します。このオプションを指定するとdocker ps -aで消されずに残っているコンテナが大量発生するのを防げます。

docker run -it --rm ubuntu /bin/bash
スポンサーリンク

QooQ