20240102Docker備忘録3(失敗→できました)

20240102Docker備忘録3(失敗→できました)


こちらは、パソコン素人です。
Docker素人です。
以下違いだらけです。自分用メモ。

(もし、投稿内容(引用等)に不具合がありましたら、削除いたしますので、ご指摘下さい。)

「Docker」というものがあるらしい。
ウィキペディアを見たが、よくわからない。

*************************************************
前回まで・・・
youtubeで解説されている方がおいでたので、試しに見てみました。(「だれでもエンジニア様」他いろんな皆様。感謝いたします。)
「だれでもエンジニア様」のを見ながら、インストール等したみた。
この動画は2021年時点のようで、少しインストール方法など変わっているのかもしれません。
注意。前回失敗しています。

*********************************************

今回:
前回失敗しています・・・からできました。(正しいかは分からない)

今回も上記、「だれでもエンジニア様」のをまねてみる。
前回の後半部分:
「Dockerのイメージ作り、コンテナ作成起動をやってみる・・・。」(イメージとコンテナの基本操作)(ウィンドウズでやってます。)

前回やったこと////////////////////////

(1)main.rb
require 'webrick'
server = WEBrick::HTTPServer.new(
    DocumentRoot: './',
    BindAddress: '0.0.0.0',
    port: 8000
)

server.mount_proc('/') do |req,res|
    res.body = 'hello'
end

server.start

(2)Dockerfile
FROM ruby:2.7

RUN mkdir /var/www
COPY main.rb /var/www

CMD ["ruby","/var/www/main.rb"]


それらを以下のようにイメージ作成、コンテナ起動。(3)(4)

(3)docker image build -t sample/webrick:latest .
※「.」を忘れないこと

(4)docker container run -p 8000:8000 --name webrick sample/webrick:latest

上記(3)(4)はうまくいっているハズ・・・・?


**************************************
これで、ブラウザで「localhost:8000」で、アクセスできるはず・・・。
見ることができない。

このページは現在機能していません。
localhostからデータは送信されませんでした。
ERR_EMPTY_RESPONSE

ERR_CONECTED_REFUSEDの時もあり。


:::::::::::::::::::::::::::::::::::::
今回:いろいろやった。


最初に、(1)で、VSコードを使用する時、documentsというディレクトリでやっていた。ふと、documentsでなく、dockerというディレクトリでないかと思った。
(準備として、上記でする前に、前回試してダメだった
「%USERPROFILE%ディレクトリ(ユーザーホームディレクトリ)に.wslconfigという名前のファイルを作成」を削除した。つまり元の状態にした。)

で、やってみたが、失敗。
VSコードも初心者だが、ディレクトリが違うと、コードが見れたり見れなかったりしたので、そうなのかと思ったのだが。

次に、ふと、「ubuntuでない」のでは?と思った。
YouTubeの画面は、windowsでなくmacだが、ubuntuでないのかもしれない。

そこで、もう一度やり直す。
docker desktopを立ち上げておく。
(今まで、サインインしていなかったが、それも原因かもしれないので、サインインした。他にも使わないイメージはdesktopでdeleteした。)

vsコードでubuntuを使わず、(1)(2)を作成。
(3)(4)もやってみる・・・でもだめだった。


うーん。ふとBingChatに聞いた回答を確認・・・。
ファイアウォールの設定: ファイアウォールがポート8000をブロックしている可能性があります。ファイアウォールの設定を確認し、ポート8000が許可されていることを確認してください。 ・・・ファイヤーウォールウイルス対策ソフトを疑うが、そうでもなさそう。。。


IPアドレスの設定: localhostは自分自身を指すIPアドレスです。もしDockerコンテナが別のマシンで動作している場合、localhostではなく、そのマシンのIPアドレスを使用する必要があります。Dockerコンテナが動作しているマシンのIPアドレスを確認し、http://アドレス>:8000にアクセスしてみてください。 ・・・そうでもなさそう。。。(しかし、多分、これは今回、ある意味正しくてubuntu使用での仮想ではなく、ウインドウズ上でDockerの使用なのだから。)


③省略


④コンテナ内のポート番号: コンテナ内で起動しているアプリケーションが、8000番ポートでリッスンしていることを確認してください。コンテナ内でアプリケーションを起動する際に、正しいポート番号を指定しているかどうかを確認してください。・・・80だった。。。(1)のportを80に。及び(4)の8000:8000を8000:80にしたら、すんなり、edgeでも、chromeでも「localhost:8000」helloの表示が出た。(修正)


何か数年で変わったのか、ウィンドウズだからなのか、自分が分かってないからだろう。