2月17日(火)1、2コマ目
今日、やったこと
- コンテナ生成、起動
- Dockerfileでイメージ作成
今日のホワイトボード
コンテナ生成、起動
Apache Webサーバーのイメージ"httpd"を使って、Webサーバーのコンテナを生成、起動する。
1.イメージ取得
学内のリポジトリ(厳密にはDockerHubのプロキシリポジトリ)から、イメージhttpdを取得。
|
| 図 イメージを取得 |
docker image lsで確認。
|
| 図 イメージ確認 |
2.イメージからコンテナ生成、起動
|
| 図 イメージからコンテナ生成、起動 |
-dオプションで、コンテナをバックグランドで起動。
-pオプションで、 ホスト側のポートとコンテナ側のポートを接続する。
これで、ホスト以外のPCからもコンテナのWebサーバーにアクセスできる。
![]() |
| 図 docker container runのオプション |
3.コンテナ停止
起動したコンテナは docker container stop コンテナ名 で停止。
|
| 図 コンテナ停止 |
4.コンテナ削除
コンテナを停止しても、コンテナ自体は残る。docker container startで起動できる。
docker container rmで削除。
|
| 図 コンテナ削除 |
Dockerfileでイメージ作成
DockerHub等で公開されているイメージを変更して新たにイメージを作ることもできる。
Dockerfileはイメージ作成の手順書。
docker image buildはDockerfileに従って処理を行う。
![]() |
| 図 Dockerfileでイメージを作成する |
[Dockerfileでイメージ作成]httpdでWebコンテンツを公開する
httpdをベースにして、イメージにWebコンテンツをコピー。
![]() |
| 図 作成するイメージ |
1.Dockerfile作成
以下のとおり。
2.Dockerfileからイメージ作成
docker image buildでイメージ作成。
|
| 図 Dockerfileをもとにイメージ作成 |
イメージが作成できているか確認。
|
| 図 作成したイメージを確認 |
3.イメージからコンテナ生成・起動
|
| 図 イメージからコンテナ生成、起動 |
4.確認
コンテナのWebサーバーは80番ポートでリクエストを待っている。
コンテナ生成時にコンテナの80番ポートとホストの5000番ポートを接続しているので、webブラウザで
http://ホストのIPアドレス:5000
でリクエストすれば、Webコンテンツが表示される。
[Dockerfileでイメージ作成]AlmaLinuxでWebサーバー構築
AlmaLinuxをベースにして、Webサーバアプリケーションhttpdをダウンロード、インストールして、Webサーバーとして稼働するイメージを作成。
![]() |
| 図 作成するイメージ |
1.Dockerfile作成
以下のとおり。
dnfコマンドでパッケージをダウンロードする際、プロキシサーバーを使う設定が必用。
コンテナはコマンドが実行中のあいだ起動する。
コンテナ起動時にコマンドを実行し、そのコマンドが終了すると、コンテナの終了する。
![]() |
| 図 コンテナはコマンド実行中のあいだ起動しつづける |
Webサーバーのプロセスはバックグランドで動かすの一般的だが、コンテナではフォアグランドで動かし続ける。
2.Dockerfileからイメージ作成
docker image buildでイメージ作成。
|
|
図 Dockerfileをもとにイメージ作成 |
3.イメージからコンテナ生成・起動
|
| 図 イメージからコンテナ生成、起動 |
4.確認
コンテナのWebサーバーは80番ポートでリクエストを待っている。
コンテナ生成時にコンテナの80番ポートとホストの5000番ポートを接続しているので、webブラウザで
http://ホストのIPアドレス:5000
でリクエストすれば、Webコンテンツが表示される。
[Dockerfileでイメージ作成]RedHatLinuxでWebサーバー構築、Webコンテンツ公開
AlmaLinuxをベースにして、Webサーバアプリケーションhttpdをダウンロード、インストール、WebコンテンツをコピーしてWebサーバーとして稼働するイメージを作成。
AlmaLinuxはRedHatクローン。
AlmaLinuxと同じようにパッケージでアプリケーションをインストールできる。
![]() |
| 図 作成するイメージ |
1.Dockerfile作成
以下のとおり。
基本的にAlmaLinuxの場合とおなじ。
2.Dockerfileからイメージ作成
docker image buildでイメージ作成。
|
| 図 Dockerfileをもとにイメージ作成 |
3.イメージからコンテナ生成・起動
|
| 図 イメージからコンテナ生成、起動 |
4.確認
コンテナのWebサーバーは80番ポートでリクエストを待っている。
コンテナ生成時にコンテナの80番ポートとホストの5000番ポートを接続しているので、webブラウザで
http://ホストのIPアドレス:5000
でリクエストすれば、Webコンテンツが表示される。
今日が最終回
これでオペレーティングシステムⅢは終了。
Dockerのテストをするかもしれません。テストをする際は、予告します。

















