投稿

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はDockerf...

2月16日(月)2コマ目

イメージ
今日、やったこと dockerコマンドでイメージ、コンテナを操作 今日のホワイトボード dockerコマンド 前回、インストールしたコンテナエンジンのDockerで、イメージ(コンテナの素)やコンテナを操作するには、dockerコマンドを使う。 dockerコマンドは2パターンの実行方法があるが、授業では新しい(とはいえ、10年は経過しているけど)実行方法を使う。 イメージダウンロード( docker image pull ) イメージはコンテナの素。イメージからコンテナを作る。 DockerHubやその他のリポジトリからイメージをダウンロードする。 学内にあるDockerリポジトリ(厳密には、DockerHubのプロキシ)からイメージubuntuの最新版をダウンロードする。 図 イメージをダウンロード イメージ一覧( docker image ls ) イメージがダウンロードできたか確認。 図 イメージ一覧表示 イメージに別名をつける( docker image tag ) ダウンロードしたイメージ名は  repo1.info.yitjc.ac.jp:8082/ubuntu:latest と長い。別名 ubuntu:latest を命名。 図 イメージに別名を命名 docker image lsで確認すると、イメージがコピーされたように見える。 図 イメージ一覧表示 イメージからコンテナ生成、起動( docker container run ) docker container run ならイメージからコンテナを生成し、起動まで行う。 docker container createはイメージからコンテナを作るだけ。コンテナの起動は行わない。 図 イメージからコンテナ生成、起動 オプションがいくつか指定されている。 図 docker container runコマンドのオプション -itオプション付きでコンテナを生成・起動したので、コンテナのシェルのプロンプトが表示される。 下図のlsコマンドはコンテナで実行。ホスト側で実行したわけではない。 図 コンテナでlsコマンド実行 起動中のコンテナ一覧を表示( docker container ls ) docker container lsで起動中のコンテナ一覧が表示される。 図 起動中のコンテナ一覧 コンテナからデタッ...

2月10日(火)1、2コマ目

イメージ
今日、やったこと [確認テスト 解説]Linuxサーバー運用 Docker環境構築 今日のホワイトボード [確認テスト 解説]Linuxサーバー運用 問1 rootユーザーしか読み取れない/var/libディレクトリ以下にあるファイルを非特権ユーザーで読み取りたい。 図 問1 問2 sudoを使えるようにしたい。 図 問2 ※OSによって異なるので注意 問3 Apache Http Serverのデフォルトページを無効化したい。 図 問3 問4 Apache HTTP ServerでHTTPのTRACEコマンドを無効化したい。 図 問4 問5 Apache HTTP ServerでHTTPのヘッダー部やエラーメッセージにOSやバージョン情報を出力しない。 図 問5 問6、7 Telnetの問題点は?その問題点を解消できるプロトコルは? 図 問6、7 コンテナとは?コンテナエンジンとは? ハイパーバイザが提供する仮想PC環境とは異なり、コンテナエンジンが提供するコンテナは仮想PCではなく、仮想OSのイメージ。 図 コンテナエンジンが提供するコンテナ ハイパーバイザと異なり、コンテナはサイズも小さく、CPUやメモリにもやさしい。 コンテナエンジンDockerインストール LinuxOSにコンテナエンジンのDockerをインストール。 ①Dockerパッケージのインストール DockerパッケージはAlmaLinux本家のサイトにはないが、Docker社が提供している。 パッケージ管理コマンドのdnfはデフォルトでは、AlmaLinux本家のサイトからダウンロードするため、Docker社のサイトからもダウンロードできるように設定。 図 Linuxのリポジトリ Dockerイメージをダウンロードする デフォルトでは、httpsでDocker社が提供するDockerHubと呼ばれるサイトからダウンロードする。 学内にもDockerイメージが取得できるサイトを構築済みだが、httpsには対応していない。 そこで、学内のリポジトリサーバーからhttpでもダウンロードできるように設定変更。 図 Dockerリポジトリ 次回は Dockerを操作するためのdockerコマンドを使って、コンテナ作成。

2月3日(火)1、2コマ目

イメージ
今日、やったこと [確認テスト]Linuxサーバー構築・運用 SSL/TLS 今日のホワイトボード SSL/TLSとは SSLはSecure Socket Layerの略。TLSはTransport Layer Securtyの略。 TLSはSSLの次世代版で、今はTLSを使っている。SSLは過去の遺産。 SSL/TLSはともにトランスポート層のプロトコルで、トランスポート層以上のアプリケーション層のプロトコルを暗号化するために使われる。 図 SSL/TLS Webの暗号化にも使われている。  パケットのなかで暗号化されるのは、HTTPの部分(アプリケーション層)だけ。 [おさらい]共通鍵暗号方式 秘密鍵暗号方式とも呼ばれる。古の時代から現在まで使われる暗号方式。 暗号化、復号に同じ鍵を使う。鍵を安全に共有する点が最重要ポイント。 図 [おさらい]共有鍵暗号方式 [おさらい]公開鍵暗号方式 鍵は1つではなく、2つ。 暗号化と復号で異なる鍵を使う。 共通鍵暗号方式と異なり、鍵の共有は不要だが、暗号化、復号処理が共通鍵に比べると遅くなる。 図 [おさらい]公開鍵暗号方式 TLSで暗号化通信をするまで TLSはTCPを使っているため、まず、TCPのコネクション確立を行う。 そのあと、TLSハンドシェイクを行う。 TLSハンドシェイクでは、暗号化方式を決定し、暗号化通信で利用する共通鍵を共有する 。 図 TLSで暗号化通信をするまで [TLSハンドシェイク]①Client Hello、②Server Hello Client Helloでクライアントからサーバーに クライアントランダム <= 共通鍵生成時に利用 可能な暗号化方式一覧 等を送信。 Client Helloを受信したサーバーは、Server Helloで サーバーランダム <= 共通鍵生成時に利用 暗号化方式 をクライアントに通知。 図 ①Client Hello、②Server Hello [TLSハンドシェイク]③Server Certificate サーバーはクライアントにサーバー証明書を送信。 サーバー証明書にはサーバーの公開鍵を含む。 図 ③Server Certificate [TLSハンドシェイク]④Client Key Exchange クライアントは共通鍵の素になる プリマ...