こんにちは。
Dockerが理解できてきました。簡潔に説明すると「 Dockerfile」でOSのコマンドを記入して保存したファイルから「イメージ」を一時的(または編集可能)な「コンテナ」で読み込んで操作する感じなのですね。だから自分好みのイメージさえあればコンテナが使い捨てでも問題ないと言うことですね。
最初の記事の「Docker Debianの自己流初期設定」のように1から作るのは間違いでした。また、「Docke内のPythonからiCloudに接続しようとした話」も結局iCloud上にマウント(直接接続)するので、Pyicloudは必要ありませんでした。(EXIF情報を抜き出すのにPython3のPILモジュールは使います。)
多分、先に進めば進むほど、この記事も間違いだらけになるのでしょうね😅
Dockerfileやdocker-compose.ymlを晒したいところですが、自分好みすぎる構成なので、もっと分かりやすい記事を探していただいた方が良いと思います。
私は
- 「Docker Debianの自己流初期設定」のやり方でコマンド無しのイメージを作る
- 自分が作りたいアプリの実行環境を作るまでの手順をメモする
- メモ通りにDockerfile等を作ってイメージをビルドしてみる
- イメージが正しく動くかdocker runで確認する
手順で作りました。Jekyllを動かすためのポート開けやマウントなど、docker run の記述も呪文のように長くなっています。(その内シェルファイルにします。)下記は一例です。
docker run -p 51238:4000 --rm -w /home/ユーザー名/Jekyll -u "ユーザー名" -it --name="test" -v ./Jekyll:/home/ユーザー名/Jekyll alpine/jekyll:1.0 /bin/bash
コンテナの中の4000ポートをホストの51238ポートと繋げて、コンテナから抜けたらコンテナを削除して、最初に表示するのは/home/ユーザー名/Jekyllディレクトリで、ユーザー名で入って、中に入ってコマンドを打てるようにして、コンテナ名はtestにして、ホストの「./Jekyllフォルダ」をコンテナの「/home/ユーザー名/Jekyll」にマウントして、alpine/jekyll:1.0というイメージを読み込んで、シェルはbashで。というわがままてんこ盛りです。
これから先は、今までの間違いの多さから技術系ぶった記事を書かず、日記系の記事を書くことにします。
読んでいただきありがとうございました。


