Docker:【チュートリアルやってみた】Web編
目次
はじめに
全体
- Webページを実行することのできるサンプルイメージをダウンロード
- 動くように作られているので実行するのみ
- コンテナの停止、実行履歴の削除コマンドを確認
- Webサーバのリスンポートを確認してブラウザから接続する
- nginx(軽いWebサーバ)を利用
前提
- Dockerの基本を理解、またはチュートリアル(基本編)の終了
- Dockerインストール
- 手順を実行した環境
- OS:Windows11
- Linuxカーネル:WSL2
- ディストリビューション:Ubuntu
- 注意
- 本手順はrootでDockerを起動してテスト
- Docker専用ユーザがいれば適宜読み替えて実行
- 「sudo -u xxx」に読み替えて実行
- Docker専用ユーザにsuして、sudoなしで実行
コンテナの操作
コンテナ実行
イメージの確認
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が表示される
(削除しましたぐらい言ってほしい…)
- 削除した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
