質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

971閲覧

【Docker構築】Windows PowerShellで「Hello, world!」を表示させたい。

Tomoya-Kaitsuka

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2023/01/06 18:21

前提

Windows PowerShellで「docker container run -p 8000:8000 --name webrick128135tk sample/webrick:latest」を実行しました。

実現したいこと

アドレスバーに「http://localhost:8000/」を入力して実行すると「Hello, world!」が表示される

発生している問題・エラーメッセージ

Unable to find image 'sample/webrick:latest' locally docker: Error response from daemon: pull access denied for sample/webrick, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

該当のソースコード

ruby

1require 'webrick' 2 3server = WEBrick::HTTPServer.new( 4 DocumentRoot: './', 5 BindAddres: '0.0.0.0', 6 Port: 8000 7) 8 9server.mount_proc('/') do |req, res| 10 res.body = 'Hello, world!' 11 end 12 13 14sever.start

Docker

1FROM ruby:2.7 2RUN mkdir /var/www 3COPY main.rb /var/www 4CMD ["ruby", "/var/www/main.rb"]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

既にある回答と重なる部分もありますが、指定したイメージが見つからないという状況でしょうか。Dockerfileを書かれているようですので、イメージをビルドすれば起動できるのではないでしょうか。

ビルド&起動

PowerShell

1> docker build -t sample/webrick:latest . 2> docker container run -p 8000:8000 --name webrick128135tk sample/webrick:latest

アクセス

PowerShell

1> [System.Text.Encoding]::UTF8.GetString((Invoke-WebRequest http://localhost:8000).Content) 2Hello, world!

なお、質問内のソースコードにTypoがあるようでundefined local variable or method 'sever' for main:Object (NameError)というエラーが出ましたので、変数名を修正して(sever -> server)、以下で動作確認しました。

ruby

1require 'webrick' 2 3server = WEBrick::HTTPServer.new( 4 DocumentRoot: './', 5 BindAddres: '0.0.0.0', 6 Port: 8000 7) 8 9server.mount_proc('/') do |req, res| 10 res.body = 'Hello, world!' 11 end 12 13 14server.start

投稿2023/01/06 23:51

knuser

総合スコア178

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tomoya-Kaitsuka

2023/01/07 03:53

解答ありがとうございます。 ただ、自分の理解不足のせいでまだエラーが解決できておりません。 【ディレクトリの前提】 PS C:\Users\TK\test>docker 「docker」という名前のフォルダに中に「Dockerfile」と「main.rb」があります。 【行ったこと】 ソースコードのTypoは修正しました。   windows Power shellの「PS C:\Users\TK\test>」で「docker build -t sample/webrick:latest .」を実行しました。 その後、「docker build -t sample/webrick:latest .」を実行したところエラーが発生しました。 【結果】 下記のエラーが発生しました。 Unable to find image 'sample/webrick:latest' locally docker: Error response from daemon: pull access denied for sample/webrick, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
knuser

2023/01/07 04:19 編集

「docker build -t sample/webrick:latest .」は正常に終了した感じでしょうか?(エラーなど出ていないでしょうか?)。正常に終了すると、locallyにイメージが保持されると思いますが、Unable to find imageと出ているようですね。 例えば「docker images」コマンドの結果に「sample/webrick」は含まれないでしょうか? ---------- $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE sample/webrick latest 227c07bb7f 5 hours ago 865MB ----------
Tomoya-Kaitsuka

2023/01/07 04:59

【行ったこと】 PS C:\Users\TK\test\Docker>のディレクトリで、「docker build -t sample/webrick:latest .」を実行した際の結果は下記です。 【結果】 [+] Building 2.7s (9/9) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 127B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ruby:2.7 2.3s => [auth] library/ruby:pull token for registry-1.docker.io 0.0s => [1/3] FROM docker.io/library/ruby:2.7@sha256:85860033c72fc9d0 0.0s => [internal] load build context 0.0s => => transferring context: 261B 0.0s => CACHED [2/3] RUN mkdir /var/www 0.0s => [3/3] COPY main.rb /var/www 0.1s => exporting to image 0.1s => => exporting layers 0.1s => => writing image sha256:d70dee8e7df8f9b3cc92aae74ed4c14497370 0.0s => => naming to docker.io/sample/webrick:latest 0.0s Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them 【行ったこと】 PS C:\Users\TK\test\Docker>のディレクトリで、「docker images」を実行しました。 【結果】 REPOSITORY TAG IMAGE ID CREATED SIZE sample/webrick latest d70dee8e7df8 10 minutes ago 865MB 【行ったこと】 PS C:\Users\TK\test\Docker>のディレクトリで、「 docker container run -p 8000:8000 --name webrick128135tk sample/webrick:latest」を実行しました。 【結果】 docker: Error response from daemon: Conflict. The container name "/webrick128135tk" is already in use by container "4733e0ec250aabb3231a744a2e2d3004a76cb5e13adf679bb590782e38c0bb1c". You have to remove (or rename) that container to be able to reuse that name.
knuser

2023/01/07 05:10

別のエラーになっていますね。エラーメッセージにある通り「You have to remove (or rename) that container to be able to reuse that name.」がアクションになると思います。 例えば、「docker rm webrick128135tk」で前回の実行結果を削除してからリトライすると成功するのではないかと思います。
Tomoya-Kaitsuka

2023/01/07 05:25

ご回答ありがとうございます。 無事に「Hello, world!」が表示されました。
guest

0

指定したイメージがリポジトリに存在しないため、pullに失敗しているようにみえます。

イメージの名前がsample/webrickになっていますが、間違っていないでしょうか。

投稿2023/01/06 20:05

jhashimoto

総合スコア838

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問