夏休みの自由研究にDockerはいかが その3

前回はDocker TerminalからPowershell7コマンド[docker pull kujiranodanna/iot-house_docker:ubuntu22.04-latest]でイメージをpullしました、今回はこれを起動させてコンテナを操作します

既にdocker desktopのImagesにpullしたイメージと状態表示されていますが、敢えてPowerShell7からdocker imagesコマンドで存在するイメージを表示しました

これ以外のイメージは大抵の場合▶️ボタン一発で実行出来ますがこれはオプションが必要、PowerShell7のコマンドdocker run …で起動・・・特権モード「–privileged」が必要

PowerShell 7.4.4
PS C:\Users\user1> docker run -itd --privileged --name iot-house_docker -p 8022:22 -p 80:80 -p 443:443 kujiranodanna/iot-house_docker:ubuntu22.04-latest

既にdocker desktopのContainersに状態が表示されいますが、PowerShell7のコマンドdocker ps -aで起動しているコンテナが全て表示されます

母艦PC WindowsのChromeブラウザでhttps://localhost開きます・・・SSLサーバ証明書がうそっぱちなので警告しますが危険を承知して接続します

https://localhost/remote-hand/wait_for.cgi →ログイン画面でユーザー名:remoteパスワード:hand入力

初期画面が立ち上がります、『GPIO[Sunhayato MM-CP2112B]経由BME680環境ガスセンサー』が接続されていればOutput,Input,温度湿度,空気環境状態などが本来の表示がされますが今はグレー・アウトですね😅

このままだと別PCやスマホから接続出来ません危険を承知して母艦がお家Windows PCに限り設定出来ます・・・母艦PCからのみアクセスする場合は不要です

※Windows defender firewall 設定→受信の規則→新規の受信の規則ウィザード→TCP→特定のローカルポート→80,443,8022→接続を許可する→プロファイル→プライベート→名前→適当:iot-house_docker→完了

LINE Notify(ラインノーティファイ)アクセストークンの発行を事前にします、次のServer Control設定でIOT-Houseと連携させる、発行方法は他サイトに多々掲載されているので参照して下さい・・・LINE Notifyが空でも設定は出来ますが後々のためにもお勧めです

次に初期画面からServer Controlタブを選択→web user:XXXX web password:XXXX LINE Notify:XXXXXを入力 Run

ボタンを押して完了、画面遷移後新しいuserとpasswordでログインします

Server Controlタブで行うweb user、web password、 LINE Notifyは設定保存する時にも行います

コンテナを停止する場合、docker desktopのContainers該当コンテナ→Action→🔲→Stop、又はPowerShellで[docker stop iot-house_docker]でStopさせ、docker desktopの❎で終了させます

以下備忘の為dockerコマンドを列挙しました詳細は省き他サイトを参照して下さい、次回ノーコードで簡単なデモを掲載予定


docker system df <-- Cache confirmation
docker builder prune <-- Build Cache clean
docker build ./ -t iot-house_docker:v0.01 <-- Build
docker container ps -a <-- List container
docker exec -it iot-house_docker bash <-- Container into bash
docker commit iot-house_docker iot-house_docker:new_version <-- copy Container to image
docker save iot-house_docker:new_version -o iot_docker_carry.tar <-- carry Container image
docker load -i iot_docker_carry.tar <-- docker image load
docker stop house_docker <-- container stop
docker start house_docker <-- container start ...
docker restart house_docker <-- container restart
docker rm house_docker <-- container delete
docker tag iot-house_docker:v0.00 iot-house_docker:v0.01 <-- image tag change
docker rmi house_docker:v0.01 <-- image delete(REPOSITORY:TAG)
docker run -it --rm iot-house_docker:v0.00 bash <-- image into bash, for debug
docker run -d --restart unless-stopped iot-house_docker <-- container auto restart
docker update --restart unless-stopped iot-house_docker <-- container auto restart policy set
docker update --restart=no iot-house_docker <-- container auto restart disable
docker run -itd --privileged --name iot-house_docker -p 8022:22 -p 80:80 -p 443:443 kujiranodanna/iot-house_docker:ubuntu22.04-latest

Follow me!