Docker初心者です。
Dockerfileを使ってnginxイメージをインストールしようとしています。
今、「mynginx」というフォルダを作ってそこにDockerfileを置き、
FROM nginx
とだけ記入しました。
そしてターミナルで「mynginx」フォルダに移動し、
$ docker build -t mynginx .
と打ち込んで実行したのですが、
$ docker build -t mynginx . [+] Building 3.9s (5/5) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 100B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/nginx:latest 3.8s => CACHED [1/1] FROM docker.io/library/nginx@sha256:ed7f815851b5299f616220a6 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:ed30f6bc07d39c1664b2e13ecb45747b8264e36135081eb02 0.0s => => naming to docker.io/library/mynginx
と表示され、イメージは作成されたものの肝心のnginxがインストールされません。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE mynginx latest 9023d297149b 11 hours ago 133MB
このようにnginxが入っていません。
私は何か初歩的な勘違いをしているのでしょうか?
nginxのイメージがインストールされない要因として考えられることはなんでしょうか?
nginxがインストールされたイメージを取得されているように見えますが、何をもってインストールされないと判断されたのでしょうか?
すみません、追記しました。
docker images で確認したのですがそこにnginxが含まれてないため、インストールされていないと判断しました。
また、「docker run -d -p 80:80 mynginx」として走らせてlocalhost:8080にアクセスしたところつながらないため、nginxがインストールされていないと思われます。
localhost:80 ではないでしょうか?
-p 80:80 なので80でポート解放されています。
おっしゃる通りでした。。
ネット上の動画教材でDocker勉強をしていた際によく8080でアクセスしていたためにバイアスがかかってしまっていました。
それとdocker imagesにはnginxは表記されないのですね。。
nginxのwelcomeページは表示されましたでしょうか?
> それとdocker imagesにはnginxは表記されないのですね。。
そうですね。
docker buildの段階でnginxがmynginxに組み込まれたとイメージして頂ければよいかと思います。
mynginxの中にnginxが含まれているということですね、納得しました。
無事にwelcomeページは表示されました!
色々教えていただき本当にありがとうございました。
解決されてよかったです。
Fromは元のイメージの中身(ファイル群)を取り込むことなので、元イメージに予めインストールされたアプリや設定などが引き継がれるイメージです。
腑に落ちました。それを意識しておけばまた同じようなことでつまづくことはなさそうですね!
使いながら色々覚えていきたいと思います。丁寧に教えていただいて感謝します。。
回答1件
あなたの回答
tips
プレビュー