2021年7月31日開催のOSC 2021 Online/Kyotoで実施するハンズオンセミナーの参考資料になります。
セミナー終了後、後日YouTubeのOSPN.jpチャンネルにセミナー動画が公開されますので、そちらの資料としてもご活用いただけます。
コンソールが使えるようになるまで
KatacodaのUbuntu 20.04プレイグラウンドを使用しますので、以下のサイトにアクセスして「Ubuntu 20.04 Playground」の「Start Scenario」をクリックしてください。
https://www.katacoda.com/courses/ubuntu
インスタンスが無事起動すると左側に「Hello World」が表示されます。「Hello World」表示が邪魔な場合は、右のコンソール画面との境目をクリックしたまま左にドラッグすると縮小されます。最も縮小された場合はStepsという表示のみになります。
右上角にある設定アイコンをクリックするとテキスト表示が拡大されたプレゼンモードになります。
以上の作業で使いやすいコンソールになると思います。
試しにLinuxのコマンドを試してみましょう。
pwd, ls -l /,date, locale, ip a, など
ちなみに、KatacodaのUbuntuインスタンスは、root(管理者権限)でのログインが標準になります。コンソールが$マークのみだと状態がわかりにくいのでユーザーを切り換えます。
su - packer
packer@host01:~$
id
ハンズオンで実施するコマンド
各種情報の確認
システム情報を表示
uname –a
catコマンドでLinux OSのバージョンを表示
cat /etc/os-release
cat /proc/version
ホスト名設定コマンドでカーネル情報を確認
hostnamectl
hostnamectlはサブコマンドなしに実行するとホスト名と関連情報を表示できます。 Virtualizationの項目がkvmになっているはずです。KVMはLinuxの代表的な仮想化ソリューションです。このインスタンスが仮想で動作していることが確認できます。
アプリのインストール
システムアップデート
sudo apt update
ジョークアプリのインストールと実行
3つのジョークアプリをインストールして実行します。何が起こるかはお楽しみ。
sudo apt install sl figlet cmatrix
sl
figlet OSC2021 Kyoto
cmatrix
余裕があったらslアプリのオプションも実行。
slのオプション
sl -a
sl -l
sl -F
サーバアプリケーションのインストール
Apacheのインストールと起動確認
sudo apt install apache2
systemctl status apache2
起動が確認できたらメニューバーの+アイコンのクリックで使えるWebプレビュー(View HTTP port 80 on Host 1)でApacheが動作していることを確認。
Document Rootにindex.hmlファイルを配置し表示
画面上部のIDEをクリックするとVS Codeが起動します。New Fileでindex.htmlを作成し、以下のコードをコピペします。VS Codeを使わない場合はviで作成してもOK。
<html>
<head>
<meta charset="utf-8">
<title>Katakodaで作ったWebサイト</title>
</head>
<body>
<h1>私のホームページへようこそ!</h1>
<p>ここはクラウド環境で構築したWebサイトです。</p>
</body>
</html>
作成したindex.htmlをDocument Root(/var/www/html/)に配置します。
(VS Codeで作成した場合の一例)
$ sudo ls /root
index.html
$ sudo cp /root/index.html /var/www/html
Webプレビューのウインドウを再読み込みして、index.htmlファイルの内容が表示されるかを確認します。
Dockerでコンテナを動かす
sudoを使わずにDockerを実行する設定
sudoコマンドで実行するのが面倒なので、dockerグループへpackerユーザーを登録します。一度exitしてpackerユーザーでログインし直します。
sudo usermod -aG docker $USER
exit
su - packer
Dockerのバージョン確認
docker -v
docker version
docker info
Dockerの起動確認
systemctl status docker
コンテナの動作確認
旧体系
(ubuntu)
docker run docker/whalesay cowsay hello-OSC-Kyoto
docker run docker/whalesay cowsay hello-Linux
docker run -it --name cent701 centos:7 /bin/bash
(centos)
cat /etc/os-release
uname -a
exit
(ubuntu)
docker ps -a
docker images
新体系
(ubuntu)
docker container run docker/whalesay cowsay hello-OSC-Kyoto
docker run docker/whalesay cowsay hello-Linux
docker container run -it --name cent702 cantos:7 /bin/bash
(centos)
cat /etc/os-release
uname -a
exit
(ubuntu)
docker container ls -a
docker image ls
Apacheコンテナをバックグラウンドで起動
旧体系
旧体系ではApacheの公式コンテナをバックグラウンドで実行します。apa01という名前でコンテナを生成し、ローカルの8081番ポートをコンテナの80番ポートに接続するオプションを指定します。
起動が確認できたらメニューバーの+アイコンのクリックで使えるWebプレビュー(Select port to view on Host 1)で8081番を指定し、Apacheが動作していることを確認。
docker run -itd --name apa01 -p 8081:80 httpd
docker ps
新体系
新体系ではapa02という名前でコンテナを生成し、ローカルの8082番ポートをコンテナの80番ポートに接続するオプションを指定します。
起動が確認できたらメニューバーの+アイコンのクリックで使えるWebプレビュー(Select port to view on Host 1)で8021番を指定し、Apacheが動作していることを確認。
docker container run -itd --name apa02 -p 8082:80 httpd
docker container ls
隔離されているApacheコンテナのindex.htmlを変更する
ディレクトリを2つ作成して、区別が付くようににindex.htmlファイルを作成します。
mkdir web1 web2 && echo Web1 Works! > web1/index.html && echo Web2 Works! > web2/index.html
docker cpコマンドでコンテナ内の指定ディレクトリにindex.htmlを配置
docker cpコマンドを使えば隔離されているコンテナ内にファイルをコピーすることができます。
docker cpコマンドの後に、ホストOS側のファイルを指定し、続けてコピーしたいコンテナのディレクトリを指定します。
docker cp web1/index.html apa01:/usr/local/apache2/htdocs/
docker cp web2/index.html apa02:/usr/local/apache2/htdocs/
Webプレビューでそれぞれのポートを指定して動作確認
8081番の方が「Web1 Works!」、8082番が「Web2 Works!」が表示されていればOK。
隔離されているコンテナにホストOS側からファイルをコピーできることが確認できます。
コンテナの動作状況をグラフィカルに確認
メニューバーのVisualHostをクリックするとWeaveScopeが起動し、コンテナの動作状況をグラフィカルに確認できます。