■ はじめに
https://dk521123.hatenablog.com/entry/2022/01/14/102719
の続き。 今回は、DockerコマンドからApacheを起動してみる。
目次
【1】コンテナの作成と実行 1)構文 2)コマンド例 3)補足:コンテナとの通信 【2】実行状態の確認 1)コマンド例 2)オプション 【3】動作確認 【4】コンテナの停止 1)構文 2)コマンド例 【5】コンテナの再開 1)構文 2)コマンド例 【6】後片付け 1)コンテナ廃棄 2)イメージ破棄
【1】コンテナの作成と実行
* コンテナを作成して実行する => docker container runコマンドを使う => docker run でも同じ意味
1)構文
docker container run --name <ContainerName> <ImageName> <実行したいコマンド>
2)コマンド例
docker container run --name hello-apache -d -i -t -p 80:80 -v /tmp:/usr/local/apache2/htdocs httpd
-d
* デタッチモード (バックグラウンドで実行)
-i
* インタラクティブ(--interactive) => 標準入出力/標準エラー出力をコンテナに連結する
-t
* 疑似端末を割り当てる(--tty) => 疑似端末(pseudo-tty)とは、 カーソル移動や文字削除などの文字入力をサポートする端末
-p <ホストのポート>:<コンテナのポート>
* ホストのポートとコンテナのポートを指定 => 詳細は、後述「3)補足:コンテナとの通信」を参照
-v マウント先やボリューム名:コンテナのディレクトリ
* コンテナのディレクトリを、特定のディレクトリにマウント * --volume でもいい
3)補足:コンテナとの通信
* Apacheが設定されているコンテナに対して、 ブラウザでアクセスするには、外界と接続する設定が必要。 => 母体となる物理マシンのポートとコンテナのポートを紐づけるために 「-p <ホストのポート>:<コンテナのポート> (e.g. -p 8080:80)」を指定する
【2】実行状態の確認
* 作成したコンテナの実行状態を確認する => docker container psコマンド を使う => docker ps / docker container lsでも同じ意味
1)コマンド例
docker container ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2c97a8027ebc httpd "httpd-foreground" 9 minutes ago Up 9 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp hello-apache
2)オプション
「-a」オプション
停止中のコンテナも含めて表示する
【3】動作確認
[1] /tmp配下に、任意のHTMLファイルを置く => 以下「例」参考 [2] ブラウザでそのファイルにアクセスしてみる => 例の場合、http://localhost/hello.html
例
vi /tmp/hello.html ~~~~ <html> <body> <h1>Hello, Docker Container</h1> </body> </html> ~~~~
【4】コンテナの停止
1)構文
docker stop <ContainerName>
2)コマンド例
docker stop hello-apache $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $ docker container ls -a <= 停止含めて表示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2c97a8027ebc httpd "httpd-foreground" 24 minutes ago Exited (0) 14 seconds ago hello-apache 22d971fb7ad4 hello-world "/hello" 24 hours ago Exited (0) 24 hours ago flamboyant_hertz
【5】コンテナの再開
1)構文
docker start <ContainerName>
2)コマンド例
docker start hello-apache $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2c97a8027ebc httpd "httpd-foreground" 30 minutes ago Up 8 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp hello-apache
【6】後片付け
1)コンテナ廃棄
* コンテナを破棄する => docker container rmコマンドを使う
コマンド例
# 停止させてから削除する docker container stop hello-apache docker container rm hello-apache
2)イメージ破棄
コマンド例
# イメージの確認 ... docker image lsコマンド $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest a8ea074f4566 4 weeks ago 144MB hello-world latest feb5d9fea6a5 5 months ago 13.3kB docker image rm httpd
参考文献
https://codezine.jp/article/detail/12831
関連記事
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker ~ Linux / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2018/04/10/234030
Docker ~ 入門編 / GO言語 ~
https://dk521123.hatenablog.com/entry/2022/01/14/102719
Docker ~ 入門編 / WordPress ~
https://dk521123.hatenablog.com/entry/2022/04/29/000000
Docker ~ 基本編 / docker network ~
https://dk521123.hatenablog.com/entry/2022/04/30/000000
Docker ~ 基本編 / Dockerfile ~
https://dk521123.hatenablog.com/entry/2020/04/14/000000
Docker ~ 基本編 / dockerコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Docker ~ 基本編 / docker-compose ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker ~ Data Volume ~
https://dk521123.hatenablog.com/entry/2018/09/08/222100
学習用クラウドサービス ~ katacoda ~
https://dk521123.hatenablog.com/entry/2021/07/15/211044