Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

Windows 10 Homeでdocker入門 Hello Worldの次の段階をやってみる | Windows 10 Home + WSL + Ubuntu 16.04 でdocker その0002

参考にさせて頂いたページ

今日の環境

  • Windows10 Home
  • WSL + Ubuntu 16.04

はじめに

2018年09月08日現在で、WSLではコンテナ内に入れなくて解決できないので諦めてvagrantのcentos7.3にdocker-ceをインストール試しています。

前提

以下の記事でWindows 10 Home + WSL + Ubuntu 16.04 でdockerのHello Worldまでやってみました。

ローカルにダウンロード済みのdocker image一覧を確認する

以下のコマンドで確認できます。

$ docker images

以下のように表示されました。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              2cb0d9787c4d        8 weeks ago         1.85 kB

コンテナ一覧を確認する(停止中のコンテナも含めて確認)

docker ps -a

コンテナがあれば、以下のような感じで一覧が表示されます。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
01b4a46364c9        hello-world         "/hello"            41 minutes ago      Exited (0) 41 minutes ago                          kickass_austin
5304de8d9ebb        hello-world         "/hello"            About an hour ago   Exited (0) About an hour ago                       romantic_pasteur
0b51cc48a7a8        hello-world         "/hello"            About an hour ago   Exited (0) About an hour ago                       elastic_dijkstra

Dockerコンテナを削除する

以下のコマンドで削除できます。

docker rm <コンテナ名>

さきほど一覧を表示したうちの、NAMESがコンテナ名ですのでこの例では以下の通りです。

docker rm kickass_austin

もう一度一覧を確認すると削除されているはずです。

hello-worldのイメージを元に作成されたコンテナがあれば全て削除していきます。

docker imageを削除する

以下のコマンドで削除できます。
ただし、停止中のコンテナなどで使用されているイメージは「強制削除」を指定しないと削除できません。

# docker rmi <Dockerイメージ名> (今回でいえば「hello-world」)
または
# docker rmi <IMAGE ID> (今回でいえば「f2a91732366c」)

hello-worldのイメージはもういらないので削除します。

さきほど一覧を表示した、hello-worldを削除します。
今回の例では以下の通りです。

docker rmi hello-world

このとき停止中のコンテナでhello-worldイメージが使用されている場合は削除できず、以下のようなエラーが表示されます。

Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 0b51cc48a7a8 is using its referenced image 2cb0d9787c4d

または

Error response from daemon: conflict: unable to delete 2cb0d9787c4d (must be forced) - image is being used by stopped container 5304de8d9ebb

Nginxイメージを使ってコンテナを起動し停止までやる

イメージをダウンロード

nginxのDockerイメージをダウンロードします。
ダウンロードが終わったらenterを押す必要があるかもしれません。

docker pull nginx

コンテナの作成と起動

ダウンロードしたnginxのイメージで、コンテナを作成し起動します。

docker run -d --name nginx-container -p 8181:80 nginx

以下のURLにブラウザでアクセスしてみます。

http://localhost:8181/

以下のようなnginxのページが確認できたら上手く動いています。

f:id:motomichi_works:20180908013520p:plain

コンテナの停止

まず以下のコマンドでコンテナの一覧を表示します。

docker ps -a

以下のようにコンテナの一覧が表示されました。Upの状態であることがわかります。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
1d2dcda1f2e0        nginx               "nginx -g 'daemon ..."   9 minutes ago       Up 9 minutes        0.0.0.0:8181->80/tcp   nginx-container

コンテナ名を指定して停止します。

docker stop nginx-container

dockerの基本的なコマンドは別途検索するとよさそうです。

コンテナを動かしたり、停止したり、コンテナやイメージが削除できるようになりました。

参考にさせて頂いたさくらのナレッジ第三回などを引き続きやってみるとより実践的な使い方を一通り経験できそうです。

今回はここまで。