ローカルdocker-composeコンテナーへの接続Windows10

アレラ

この質問と非常によく似てますが、Windows 10のブラウザー(Firefox)からローカルのdocker-composeコンテナーに接続できず、しばらくの間トラブルシューティングを行っていますが、問題を見つけることができないようです。

これが私のdocker-compose.ymlです:

version: "3"
services:
    frontend:
        container_name: frontend
        build: ./frontend
        ports:
          - "3000:3000"
        working_dir: /home/node/app/
        environment:
            DEVELOPMENT: "yes"
        stdin_open: true
        volumes:
          - ./frontend:/home/node/app/
        command: bash -c "npm start & npm run build"
    my_app_django:
        container_name: my_app_django
        build: ./backend/
        environment:
        SECRET_KEY: "... not included ..."
        command: ["./rundjango.sh"]
        volumes:
            - ./backend:/code
            - media_volume:/code/media
            - static_volume:/code/static
        expose:
            - "443"
    my_app_nginx:
        container_name: my_app_nginx
        image: nginx:1.17.2-alpine
        volumes:
          - ./nginx/nginx.dev.conf:/etc/nginx/conf.d/default.conf
          - static_volume:/home/app/web/staticfiles
          - media_volume:/home/app/web/mediafiles
          - ./frontend:/home/app/frontend/
        ports:
            - "80:80"
        depends_on:
          - my_app_django
volumes:
    static_volume: 
    media_volume:

でコンテナを起動できますがdocker-compose -f docker-compose.yml up -ddocker logs my_app_djangoまたはでログを確認してもエラーは発生しませんdocker logs my_app_nginxさらに、docker ps実行すると、すべてのコンテナーが正常に実行されていることが示されます。

この問題の奇妙な部分は、Linuxではすべてが問題なく実行され、ローカルホストのポート80でアプリを見つけることができることです。Windowsを使用しているときに異なることはdos2unix、.shファイルでを実行して確実にすることだけです。それらが適切に実行されること。この手順を省略すると、多くのエラーが発生し、これを実行する必要があると思われます。

私が間違っていることや完全に欠けていることについて誰かがガイダンス/アドバイスを与えることができれば、私は本当に感謝しています。また、詳細をお知らせしますので、お知らせください。ありがとうございました!

編集#1:timurが示唆したように、私はaを実行しdocker run -p 80:80 -d nginx、ここに出力がありました:

Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
bf5952930446: Pull complete
ba755a256dfe: Pull complete
c57dd87d0b93: Pull complete
d7fbf29df889: Pull complete
1f1070938ccd: Pull complete
Digest: sha256:36b74457bccb56fbf8b05f79c85569501b721d4db813b684391d63e02287c0b2
Status: Downloaded newer image for nginx:latest
19b56a66955145e4f59eefff57340b4affe5f7e0d82ad013742a60b479687c40
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint naughty_hoover (8c7b2fa4aef964899c366e1897e38727bb7e4c38431875c5cb8456567005f368): Bind for 0.0.0.0:80 failed: port is already allocated.

これがエラーの原因かもしれませんが、現時点で何をする必要があるのか​​よくわかりません。

編集#2:要求に応じて、これが私のDockerfilesです(1つはバックエンド用、もう1つはフロントエンド用)

バックエンドDockerfile:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN apt-get update && apt-get install -y  imagemagick libxmlsec1-dev pkg-config
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code

フロントエンドDockerfile:

FROM node
WORKDIR /home/node/app/
COPY . /home/node/app/
RUN npm install -g react-scripts
RUN npm install

編集#3:私がそうするときdocker ps、これは私が得るものです:

CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                    NAMES
0da02ad8d746        nginx:1.17.2-alpine        "nginx -g 'daemon of…"   About an hour ago   Up About an hour    0.0.0.0:80->80/tcp       my_app_nginx
070291de8362        my_app_frontend            "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:3000->3000/tcp   frontend
2fcf551ce3fa        my_app_django              "./rundjango.sh"         12 days ago         Up About an hour    443/tcp                  my_app_django

私たちが確立として、あなたは使用ドッカーツールボックスのVirtualBoxではなくによって支えられて、デフォルト Hyper-VのWindows用ドッカーを。この場合、実際にDockerを実行するVBox VMと考えることができます。したがって、すべてのボリュームマウントとポートマッピングは、ホストではなくDockerマシンVMに適用されます。また、管理ツール(Dockerターミナルなどdocker-compose)は、実際にはMinGWを介してホストOSで実行されます


このためlocalhost、デフォルトではバインディングポートをオンにません(ただし、必要に応じてVirtualBoxのVMプロパティ手動で編集することでこれを実現できます。いくつかの画像チュートリアルの2番目のリンクをグーグルで検索しました)。驚いたことに、この特定のトピックに関する公式ドキュメントはかなり不足しています-しかし、それらの例を見ることでヒントを得ることができます。

したがって、あなたの場合、正しいURLは次のようになります。 http://192.168.99.100


これら2つのソリューションで異なるもう1つの点は、ボリュームマウントです。繰り返しになりますがドキュメントはそれがどうあるべきかを示唆していますが、より明確な情報源を指摘することはできません。お気づきかもしれませんが、すべてのDockerインタラクションに使用するターミナルは、パスのエンコードが少し異なり(MinGWレイヤーがあるためだと思います)、変換されたパスはdocker-machineに送信されます-Linuxであり、Windowsスタイルのパスを処理しないためですとにかく。

ここから、あなたが探索するためのいくつかの道が見えます:

からプロジェクトを実行します C:\Users\...\MyProject

ドキュメントの状態、あなたが得るc:\Usersにマウントされ/c/Users、デフォルトで。したがって、理論的には、docker-composeユーザーのホームフォルダーから実行する場合(パスは自動的に整列するはずです)、この問題が発生しているため、おそらく別の場所から実行している可能性があります。

別の共有を作成する

VirtualBoxで独自のマウントマウントを作成することもできますpwdターミナルで実行し、プロジェクトルートがどこにあるかをメモします。次に、Virtual Vox UIを使用して、ディレクトリツリーと整列するパスを作成します(たとえば、にD:\MyProject\なるはず/d/MyProjectです。

うまくいけば、これはあなたがあなたのdocker-compose.ymlどちらかを変更する必要がないでしょう

または、Hyper-V Dockerデスクトップに切り替えてください。そうすれば、これらの特定の問題は解消されます。

Hyper-VはVirtualBoxと共存しないことに注意してください。したがって、他の目的でVBoxが必要な場合は、このオプションを使用できない可能性があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Windows10ホーム上のDocker-Dockerコンテナ内でDockerエンジンに接続します

分類Dev

ローカルコンテナーDockerを接続する

分類Dev

Dockerコンテナー内のローカルMySQLデータベースを接続していますか?

分類Dev

ローカルホスト上のDockerコンテナ内のサーバーへの接続が非常に遅い

分類Dev

Dockerコンテナーからコンテナーへの接続:接続が拒否されました

分類Dev

Docker-MySqlへのcomposeコンテナ接続が機能しない

分類Dev

Dockerコンテナ内のローカルホストポートへの接続が拒否されました

分類Dev

docker compose を使用した 2 つの Docker コンテナー間の接続

分類Dev

ローカルマシンからDockerコンテナのmongodbに接続できません

分類Dev

Dockerコンテナからローカルホスト上のMySQLに接続します

分類Dev

KubernetesクラスターへのローカルDocker接続

分類Dev

Docker-compose:mongoコンテナーに接続する方法

分類Dev

Docker-compose:mongoコンテナーに接続する方法

分類Dev

Windows10でmysqlを実行しているDockerコンテナに接続します

分類Dev

Dockerコンテナーのローカルホスト名

分類Dev

Dockerコンテナーのローカルホスト名

分類Dev

Dockerコンテナへのssh接続のパスワード定義

分類Dev

Windows10のコンテナーに依存関係があるJavaコード

分類Dev

WindowsコンテナモードのWindows10でDockerプルが失敗する

分類Dev

Docker コンテナがリモート SQL への接続に失敗する

分類Dev

ローカルDockerコンテナ間のSSH

分類Dev

ローカルホスト経由のコンテナ間接続

分類Dev

mqttブローカーDockerコンテナーに接続するテストDockerコンテナー内のPythonmqttクライアント

分類Dev

DockerコンテナからローカルホストでMariaDBに接続します

分類Dev

CeleryはDockerコンテナ内からローカルPostgreSQLに接続できません

分類Dev

dockerコンテナーがローカル/ホストのpostgresデータベースに接続することを許可する

分類Dev

リモートのMySQLデータベースに接続できないDockerコンテナをローカルで実行する

分類Dev

フラスコアプリケーションのDockerコンテナからローカルmongodbに接続する方法

分類Dev

Dockerコンテナ内のPythonスクリプトからローカルホスト上のmysqlデータベースに接続する方法

Related 関連記事

  1. 1

    Windows10ホーム上のDocker-Dockerコンテナ内でDockerエンジンに接続します

  2. 2

    ローカルコンテナーDockerを接続する

  3. 3

    Dockerコンテナー内のローカルMySQLデータベースを接続していますか?

  4. 4

    ローカルホスト上のDockerコンテナ内のサーバーへの接続が非常に遅い

  5. 5

    Dockerコンテナーからコンテナーへの接続:接続が拒否されました

  6. 6

    Docker-MySqlへのcomposeコンテナ接続が機能しない

  7. 7

    Dockerコンテナ内のローカルホストポートへの接続が拒否されました

  8. 8

    docker compose を使用した 2 つの Docker コンテナー間の接続

  9. 9

    ローカルマシンからDockerコンテナのmongodbに接続できません

  10. 10

    Dockerコンテナからローカルホスト上のMySQLに接続します

  11. 11

    KubernetesクラスターへのローカルDocker接続

  12. 12

    Docker-compose:mongoコンテナーに接続する方法

  13. 13

    Docker-compose:mongoコンテナーに接続する方法

  14. 14

    Windows10でmysqlを実行しているDockerコンテナに接続します

  15. 15

    Dockerコンテナーのローカルホスト名

  16. 16

    Dockerコンテナーのローカルホスト名

  17. 17

    Dockerコンテナへのssh接続のパスワード定義

  18. 18

    Windows10のコンテナーに依存関係があるJavaコード

  19. 19

    WindowsコンテナモードのWindows10でDockerプルが失敗する

  20. 20

    Docker コンテナがリモート SQL への接続に失敗する

  21. 21

    ローカルDockerコンテナ間のSSH

  22. 22

    ローカルホスト経由のコンテナ間接続

  23. 23

    mqttブローカーDockerコンテナーに接続するテストDockerコンテナー内のPythonmqttクライアント

  24. 24

    DockerコンテナからローカルホストでMariaDBに接続します

  25. 25

    CeleryはDockerコンテナ内からローカルPostgreSQLに接続できません

  26. 26

    dockerコンテナーがローカル/ホストのpostgresデータベースに接続することを許可する

  27. 27

    リモートのMySQLデータベースに接続できないDockerコンテナをローカルで実行する

  28. 28

    フラスコアプリケーションのDockerコンテナからローカルmongodbに接続する方法

  29. 29

    Dockerコンテナ内のPythonスクリプトからローカルホスト上のmysqlデータベースに接続する方法

ホットタグ

アーカイブ