Сеть — Доступ К Среде Docker, Работающей В Vmware, Из Локальной Сети.

  • Автор темы Amicus2011
  • Обновлено
  • 19, Oct 2024
  • #1

Вот моя установка:

У меня есть машина Ubuntu 20.04.2 LTS, работающая в VMware (клиент vSphere).

На этом компьютере у меня есть локальный веб-сайт Drupal, работающий в Docker с использованием Wodby Docker4Drupal. https://github.com/wodby/docker4drupal

Доступ к веб-сайту можно получить на компьютере с Ubuntu на http://drupal.localhost:8000.

Машина Ubuntu имеет IP-адрес 192.168.10.100 который я могу пропинговать со своего локального компьютера с Windows, который находится в той же локальной сети (IP-адрес компьютера с Windows — 192.168.10.97).

Есть ли способ получить доступ к веб-сайту Drupal непосредственно из браузера на компьютере, находящемся в той же локальной сети (т. е. на моем компьютере с Windows)?

Я пытался получить доступ http://192.168.10.100:8000 но я получаю

version: "3.7"

services:

mariadb:

image: wodby/mariadb:$MARIADB_TAG

container_name: "${PROJECT_NAME}_mariadb"

stop_grace_period: 30s

environment:

MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD

MYSQL_DATABASE: $DB_NAME

MYSQL_USER: $DB_USER

MYSQL_PASSWORD: $DB_PASSWORD

volumes:

- d4d-db-data:/var/lib/mysql # Use bind mount

php:

image: wodby/drupal-php:$PHP_TAG

container_name: "${PROJECT_NAME}_php"

environment:

PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025

volumes:

- ./web:/var/www/html:cached

crond:

image: wodby/drupal-php:$PHP_TAG

container_name: "${PROJECT_NAME}_crond"

environment:

CRONTAB: "0 * * * * drush -r /var/www/html/web cron"

command: sudo -E LD_PRELOAD=/usr/lib/preloadable_libiconv.so crond -f -d 0

volumes:

- ./web:/var/www/html:cached

nginx:

image: wodby/nginx:$NGINX_TAG

container_name: "${PROJECT_NAME}_nginx"

depends_on:

- php

environment:

NGINX_STATIC_OPEN_FILE_CACHE: "off"

NGINX_ERROR_LOG_LEVEL: debug

NGINX_BACKEND_HOST: php

NGINX_SERVER_ROOT: /var/www/html/web

NGINX_VHOST_PRESET: $NGINX_VHOST_PRESET

#      NGINX_DRUPAL_FILE_PROXY_URL: http://example.com

volumes:

- ./web:/var/www/html:cached

labels:

- "traefik.http.routers.${PROJECT_NAME}_nginx.rule=Host(`${PROJECT_BASE_URL}`)"

mailhog:

image: mailhog/mailhog

container_name: "${PROJECT_NAME}_mailhog"

labels:

- "traefik.http.services.${PROJECT_NAME}_mailhog.loadbalancer.server.port=8025"

- "traefik.http.routers.${PROJECT_NAME}_mailhog.rule=Host(`mailhog.${PROJECT_BASE_URL}`)"

traefik:

image: traefik:v2.0

container_name: "${PROJECT_NAME}_traefik"

command: --api.insecure=true --providers.docker

ports:

- '8000:80'

volumes:

- /var/run/docker.sock:/var/run/docker.sock

volumes:

d4d-db-data:
message. On port
docker-compose.yml
я получаю
404 page not found
. Any idea?

Я также отмечу, что на виртуальной машине Ubuntu я также получаю одинаковый

ERR_CONNECTION_REFUSED
if I try to reach http://0.0.0.0:8000 или http://127.0.0.1:8000 или http://localhost:8000. Только имя хоста, настроенное в проекте, разрешается на веб-сайт Drupal (http://drupal.localhost:8000).


Вот

80
I am using.

404 page not found

#docker #сеть #ubuntu #vmware

Amicus2011


Рег
26 Sep, 2011

Тем
76

Постов
188

Баллов
588
  • 25, Oct 2024
  • #2

Если вы используете файл docker-compose из этого репозитория GitHub, он использует traefik и должен правильно предоставить порт 8000, который по умолчанию должен иметь значение 0.0.0.0:8000.

Возможно, брандмауэр Ubuntu блокирует входящий TCP-порт 8000. Это может объяснить, почему он работает на drupal.localhost:8000, который, скорее всего, разрешается до 127.0.0.1, но не из 192.* LAN.

drupal

Проверьте брандмауэр Ubuntu:

drupal.localhost



Убедитесь, что входящий TCP 8000 разрешен из любого места или, по крайней мере, для диапазона IP-адресов вашей локальной сети.

.env
:

PROJECT_NAME

Если нет, вы можете открыть его с помощью:

PROJECT_BASE_URL

Оказалось, что это всего лишь сеттинг в Traefik. Мне пришлось добавить второе http-правило маршрутизатора для контейнера nginx в моем http://192.168.10.100:8000 Итак, полный раздел nginx теперь выглядит так:

Он работает нормально. Теперь я могу получить доступ к своему веб-сайту Drupal по адресу

  nginx:

image: wodby/nginx:$NGINX_TAG

container_name: "${PROJECT_NAME}_nginx"

depends_on:

- php

environment:

NGINX_STATIC_OPEN_FILE_CACHE: "off"

NGINX_ERROR_LOG_LEVEL: debug

NGINX_BACKEND_HOST: php

NGINX_SERVER_ROOT: /var/www/html/web

NGINX_VHOST_PRESET: $NGINX_VHOST_PRESET

#      NGINX_DRUPAL_FILE_PROXY_URL: http://example.com

volumes:

- ./web:/var/www/html:cached

labels:

- "traefik.http.routers.${PROJECT_NAME}_nginx.rule=Host(`${PROJECT_BASE_URL}`)"

- "traefik.http.routers.${PROJECT_NAME}_nginx_lan.rule=Host(`192.168.10.100`)"
В моем случае
- "traefik.http.routers.${PROJECT_NAME}_nginx_lan.rule=Host(`192.168.10.100`)"
с любого другого устройства в той же локальной сети.
docker-compose.yml
file and correspond to
$ sudo ufw allow from any to any port 8000 proto tcp
and
$ sudo ufw status
respectively.

 

Alllleex


Рег
28 May, 2020

Тем
79

Постов
167

Баллов
592
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно