私はDockerを初めて使用し、現在このチュートリアルに従っています。
必要なファイルを作成し、「Hello World!」を表示するように作成しました。 localhost:80上。
そのポイントを超えて、私は自分のフォルダーへの直接参照を使用してコンテナーをマウントしようとしました。これにより、index.phpファイルを更新して開発環境を模倣できるようになり、次のエラーが発生します。
私が行ったのは、画像の実行方法を変更することだけなので、index.phpファイルのコンテンツを更新して、F5を押したときにWebページに変更が反映されることを確認できます。
現在、Windows 10 ProでDocker for Windowsを使用しています
Docker for Windowsが実行されています
私はすべての手順を慎重に実行したので、だまされないようになり、うまくいかなかったようです。
モーナーの質問に答えるために、これがdocker ps
の結果です。
そして、ここでdocker logs [container-name]
そして、内部で何が起こっているのかをよりよく理解したので、ログに示されている問題を解決するにはどうすればよいですか?
これが私のDockfile
です
そして、イメージを実行するために実行したコマンド:
docker run -p 80:80 -v /wmi/tutorials/docker/src/:/var/www/html/ hello-world
そして、ファイルが存在することがわかります。
index.php
を誤って修正しているようです。それをデバッグするためにできることは、最初にindex.php
が実際にコンテナ内にマウントされているかどうかを確認することです。
次のコマンドを発行できます:
docker run -p 80:80 -v /wmi/tutorials/docker/src/:/var/www/html/ hello-world bash -c 'ls -lsh /var/www/html/'
(機能しない場合は、sh
ではなくbash
を使用してください)。実際にindex.php
が表示される場合は、ファイルが正しくマウントされていることを祝福します。エラーの原因はDockerではなく、Apacheです。
index.php
がない場合は、Dockerfileを確認する必要があります。 src/
をマウントし、/src
がDockerfileと同じディレクトリにあるかどうかを確認します。
更新してください:)
使用可能なインデックスファイルがないため、ディレクトリの内容を表示しようとするApacheからエラーが発生しています。 Dockerマッピングが正しく機能していないか、Apacheにphpサポートがインストールされていません。 http:// localhost にアクセスしています。試してみてください http://localhost/index.php 。
同じエラーが発生する場合、問題はマッピングにあります。 PHPコードを取得する場合、問題は、ApacheでのPHPサポートの欠落にあります。
私は答えが遅いことを知っていますが、答えは非常に簡単です。これが起こるのは、Dockerを使用していて、SELinuxがある場合、ホストがコンテナーのSELinuxポリシーを認識していないことに注意してください。 zを追加することにより
docker run -p 80:80 -v /wmi/tutorials/docker/src/:/var/www/html/:z hello-world
これは自動的にchcon ....
あなたがする必要があること。