Docker:【チュートリアルやってみた】Web編


はじめに

全体

  • Webページを実行することのできるサンプルイメージをダウンロード
    • 動くように作られているので実行するのみ
  • コンテナの停止、実行履歴の削除コマンドを確認
  • Webサーバのリスンポートを確認してブラウザから接続する
    • nginx(軽いWebサーバ)を利用

前提

コンテナの操作

コンテナ実行

イメージの確認

sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        latest    c059bfaa849c   2 months ago   5.59MB
hello-world   latest    feb5d9fea6a5   4 months ago   13.3kB
  • 新しいDockerイメージを取得するので、今のイメージ一覧を確認しておく
    • REPOSITORY列を見る
    • 今あるのは「apline」と「hellow-world」だけ
    • 新しくダウンロードする「dockersamples/static-site」はない

コンテナ実行

sudo docker run -d dockersamples/static-site
Unable to find image 'dockersamples/static-site:latest' locally
latest: Pulling from dockersamples/static-site
fdd5d7827f33: Pull complete
a3ed95caeb02: Pull complete
716f7a5f3082: Pull complete
7b10f03a0309: Pull complete
aff3ab7e9c39: Pull complete
Digest: sha256:daa686c61d7d239b7977e72157997489db49f316b9b9af3909d9f10fd28b2dec
Status: Downloaded newer image for dockersamples/static-site:latest
daf36942abd2166768406f7d8230b7bf5f393946fa45cf0fcd56aef80f42ee41
  • コンテナ実行前に自動でダウンロードが開始する
    • 「dockersamples/static-site」がダウンロードされた
  • docker run -d
    • 「-d」はdetach mode:バックグラウンド実行
  • 動きを整理すると
    1.指定のDockerを確認(このホストにはない)
    2.リポジトリにフェッチしてダウンロード開始
    3.ダウンロードしたイメージ使ってをコンテナ実行
  • 補足
    • サンプルのdockersamples/static-siteは、「-d」なし実行は受け付けない設定
    • もし「-d」なし実行したら、別のターミナル立ち上げてからstop

イメージの確認(ダウンロードされたか)

sudo docker images
REPOSITORY                  TAG       IMAGE ID       CREATED        SIZE
alpine                      latest    c059bfaa849c   2 months ago   5.59MB
hello-world                 latest    feb5d9fea6a5   4 months ago   13.3kB
dockersamples/static-site   latest    f589ccde7957   5 years ago    191MB
  • REPOSITORY列を確認
    • 「dockersamples/static-site」がある
    • ダウンロードできた

実行中のコンテナの確認

sudo docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS             NAMES
daf36942abd2   dockersamples/static-site   "/bin/sh -c 'cd /usr…"   15 minutes ago   Up 15 minutes   80/tcp, 443/tcp   gallant_swanson
  • docker ps
    • 基本編でも使った「docker ps」コマンド
    • 現在実行中なので一覧表示される
      ※基本編では実行中の表示確認はできなかった

コンテナ停止

コンテナ停止

CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS             NAMES
daf36942abd2   dockersamples/static-site   "/bin/sh -c 'cd /usr…"   15 minutes ago   Up 15 minutes   80/tcp, 443/tcp   gallant_swanson
  • 今起動しているコンテナは使わないので停止
  • コンテナの停止や削除コマンドにはコンテナIDが必要
  • 削除キーワードを確認
    • CONTAINER ID列「daf36942abd2」
    • IMAGE列が「dockersamples/static-site」になっている

実行中のコンテナを停止する

sudo docker stop daf36942abd2
daf36942abd2
  • docker stop
    • メッセージ出力なし(停止しましたメッセージ出てほしいな…)
    • 停止は思ったより遅かった
      • 20秒ぐらい

コンテナ停止確認

sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
  • 実行中のリストからなくなった
    • 停止できた

コンテナ実行履歴削除

コンテナ実行履歴の確認

sudo docker ps -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS                     PORTS     NAMES
daf36942abd2   dockersamples/static-site   "/bin/sh -c 'cd /usr…"   2 hours ago    Exited (137) 2 hours ago             affectionate_meninsky
a7ee4ecb8865   alpine                      "/bin/sh"                15 hours ago   Exited (0) 3 hours ago               agitated_elbakyan
ace71271902d   alpine                      "/bin/sh"                15 hours ago   Exited (0) 15 hours ago              reverent_vaughan
c5f4ac19bf32   alpine                      "/bin/sh"                15 hours ago   Exited (0) 15 hours ago              xenodochial_gould
114c9f74f04e   alpine                      "echo 'hello from al…"   19 hours ago   Exited (0) 19 hours ago              gracious_galois
990f27013637   alpine                      "ls -l"                  19 hours ago   Exited (0) 19 hours ago              vibrant_villani
be19cc34d51b   hello-world                 "/hello"                 19 hours ago   Exited (0) 19 hours ago              condescending_almeida
13e8f94aab43   hello-world                 "/hello"                 20 hours ago   Exited (0) 20 hours ago              gallant_lumiere
e62a017fdc2d   hello-world                 "/hello"                 21 hours ago   Exited (0) 21 hours ago              magical_euclid
  • docker ps -a
    • 基本編でも使った「docker ps」の「-a」オプション
    • CONTAINER ID列「daf36942abd2」がある

コンテナ実行履歴削除

sudo docker rm daf36942abd2
daf36942abd2
  • docker rm
    • 削除したCONTAINER IDが表示される
      (削除しましたぐらい言ってほしい…)

コンテナ実行履歴削除確認

sudo docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED        STATUS                    PORTS     NAMES
a7ee4ecb8865   alpine        "/bin/sh"                15 hours ago   Exited (0) 3 hours ago              agitated_elbakyan
ace71271902d   alpine        "/bin/sh"                15 hours ago   Exited (0) 15 hours ago             reverent_vaughan
c5f4ac19bf32   alpine        "/bin/sh"                15 hours ago   Exited (0) 15 hours ago             xenodochial_gould
114c9f74f04e   alpine        "echo 'hello from al…"   19 hours ago   Exited (0) 19 hours ago             gracious_galois
990f27013637   alpine        "ls -l"                  19 hours ago   Exited (0) 19 hours ago             vibrant_villani
be19cc34d51b   hello-world   "/hello"                 20 hours ago   Exited (0) 20 hours ago             condescending_almeida
13e8f94aab43   hello-world   "/hello"                 21 hours ago   Exited (0) 21 hours ago             gallant_lumiere
e62a017fdc2d   hello-world   "/hello"                 21 hours ago   Exited (0) 21 hours ago             magical_euclid
  • 一覧から「daf36942abd2」がなくなった
    • 削除できた
  • 補足
    • stopとrmを同時実行するコマンドもある
    • sudo docker rm -f xxx


Posted by futa