1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

はじめてのDocker for Windows - イメージの入手と削除、コンテナの生成から削除まで

Last updated at Posted at 2019-07-08

来るべきRailsチュートリアルへの着手に向けて、はじめてDocker for Windowsなるものを使ってみました。その結果まとめです。

Docker for Windowsのインストール

私の場合は、Chocolatey経由でDocker for Windowsをインストールしました。Chocolateyを使ったアプリケーションのインストールを行う場合、Powershellに管理者権限が必要となります。

powershell
$ choco install docker-desktop

Docker for Windowsがインストールされているか確認

Windows Powershellで以下のコマンドを実行します。管理者権限は必要ありません。

powershell
$ docker -v

Docker for Windowsが正しくインストールされていれば、実行結果は以下のようになります。

powershell
Docker version 18.09.2, build 6247962

バージョンが表示されていますね。

Dockerイメージ

Dockerイメージの入手 - nginx latest

powershell
$ docker pull nginx

実行結果は以下の通りになりました。

powershell
Using default tag: latest
latest: Pulling from library/nginx
fc7181108d40: Pull complete
d2e987ca2267: Pull complete
0b760b431b11: Pull complete
Digest: sha256:96fb261b66270b900ea5a2c17a26abbfabe95506e73c3a3c65869a6dbe83223a
Status: Downloaded newer image for nginx:latest

nginx latestのDockerイメージが正常に入手できたようです。

Dockerイメージの一覧表示

powershell
$ docker image ls

docker image lsコマンドにより、現在Docker上に追加済みのDockerイメージを一覧表示することができます。

powershell
$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f68d6e55e065        6 days ago          109MB

nginx latestのイメージがDocker上にある状態です。

Dockerイメージの削除

powershell
$ docker image rm

docker image rmコマンドにより、現在Docker上に追加済みのDockerイメージを削除することができます。

powershell
$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f68d6e55e065        6 days ago          109MB

$ docker image rm nginx
Untagged: nginx:latest
Untagged: nginx@sha256:96fb261b66270b900ea5a2c17a26abbfabe95506e73c3a3c65869a6dbe83223a
Deleted: sha256:f68d6e55e06520f152403e6d96d0de5c9790a89b4cfc99f4626f68146fa1dbdc
Deleted: sha256:1b0c768769e2bb66e74a205317ba531473781a78b77feef8ea6fd7be7f4044e1
Deleted: sha256:34138fb60020a180e512485fb96fd42e286fb0d86cf1fa2506b11ff6b945b03f
Deleted: sha256:cf5b3c6798f77b1f78bf4e297b27cfa5b6caa982f04caeb5de7d13c255fd7a1e
$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

現在実行中のDocker上にDockerイメージはなくなりました。

Dockerコンテナ

Dockerコンテナの作成

powershell
$ docker run -d -p 80:80 --name webserver nginx
  • -d コンテナをデタッチド・モード(バックグラウンド実行)で生成する
  • -p {ホスト側TCPポート}:{コンテナ側TCPポート} ポート番号の指定
    • 今回は、ホスト側・コンテナ側ともTCP80番ポートを使用
  • --name {コンテナ名} 生成するコンテナ名の指定
  • 最後にイメージ名を指定する(今回はnginx

このあとWebブラウザでhttp://localhostにアクセスしたら、nginxサーバーの初期画面がきちんと表示されました。

Dockerコンテナの一覧表示

powershell
$ docker container ls

-aオプションなしのdocker container lsは、現在実行中のコンテナの一覧を表示します。

例えばwebserverという名前のnginxイメージによるコンテナがサービス実行中の場合、実行結果は以下のようになります。

powershell
$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
c36d096e5202        nginx               "nginx -g 'daemon of…"   13 seconds ago      Up 12 seconds       0.0.0.0:80->80/tcp   webserver

続いてdocker container ls -aです。

powershell
$ docker container ls -a

docker container ls -aは、実行中・停止中問わず、現在自環境上に存在するコンテナの一覧を表示します。

例えばwebserverという名前のnginxイメージによるサービス停止中のコンテナが存在する場合、実行結果は以下のようになります。

powershell
$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
c36d096e5202        nginx               "nginx -g 'daemon of…"   46 seconds ago      Exited (0) 4 seconds ago                       webserver

4秒前に正常に停止されたという状態も表示されていますね。

Dockerコンテナのサービス停止

powershell
$ docker container stop webserver

docker container stop {コンテナ名}コマンドにより、Dockerコンテナを削除することなくサービス停止することができます。上記コマンドは、webserverという名前のdockerコンテナのサービスを停止するコマンドです。

powershell
$ docker container start webserver

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
c36d096e5202        nginx               "nginx -g 'daemon of…"   13 seconds ago      Up 12 seconds       0.0.0.0:80->80/tcp   webserver

$ docker container stop webserver
webserver

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                     PORTS               NAMES
c36d096e5202        nginx               "nginx -g 'daemon of…"   About a minute ago   Exited (0) 2 seconds ago                       webserver

一連の動作は以上のようになります。

Dockerコンテナの削除

powershell
$ docker container rm webserver

docker container rm {コンテナ名}コマンドにより、Dockerコンテナを完全に削除することができます。上記コマンドは、webserverという名前のdockerコンテナのサービスを削除するコマンドです。

powershell
$ docker container stop webserver
webserver

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                     PORTS               NAMES
c36d096e5202        nginx               "nginx -g 'daemon of…"   About a minute ago   Exited (0) 2 seconds ago                       webserver

$ docker container rm webserver
webserver

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

全体としての実行結果は、以上のようになります。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?