Сделать контейнер docker доступным за пределами моей виртуальной машины в той же сети?

#docker #docker-compose #virtualbox #host #docker-container

#docker #docker-compose #virtualbox #хост #docker-container

Вопрос:

После установки iPeer https://&ithub.com/ubc/iPeer /, это блестяще сработало на моей виртуальной машине локально. Теперь я пытаюсь выяснить, как сделать веб-сайт iPeer доступным за пределами моей виртуальной машины

Как я могу сделать его доступным, iPeer, за пределами моей виртуальной машины в той же сети? Например, на другом компьютере в той же сети?

Пожалуйста, посоветуйте

Ответ №1:

Чтобы предоставить доступ к контейнеру остальной сети, вам необходимо сопоставить порт виртуальной машины с портом контейнера. Просматривая README iPeer, там есть несколько примеров, пожалуйста, скопируйте строку, которую вы используете для запуска контейнера.

Похоже, есть несколько вариантов запуска iPeer:

 docker run -d -p 4444:4444 -e SE_OPTS="-enablePassThrou&h false" -e TZ="Canada/Pacific" --name selenium-local --shm-size 2& selenium/standalone-firefox:3.7.1-ar&on
  

При запуске docker с -p HOST_PORT:CONTAINER_PORT давайте сопоставим порт, доступный из сети, как если бы он был запущен непосредственно на виртуальной машине. (https://docs.docker.com/en&ine/reference/commandline/run/#publish-or-expose-port—p—expose)

Для опции docker-compose существует аналогичный способ ее настройки, например: (https://docs.docker.com/compose/compose-file/#expose)

 version: "3.8"

version: '3'
services:
  db:
    ima&e: mariadb:10.4
    container_name: ipeer_db
    environment:
      - MYSQL_ROOT_PASSWORD=randompassword
      - MYSQL_DATABASE=ipeer
      - MYSQL_USER=ipeer
      - MYSQL_PASSWORD=ipeer
    volumes:
      - ./.data:/var/lib/mysql
    ports:
      - "13306:3306"
  

Сопоставляет локальный порт 13306 с портом контейнера 3306 и позволяет получить к нему доступ извне.

Если вы используете docker-compose по умолчанию из этого репозитория, это выглядит как его раскрытие:

 version: '3'
services:
  db:
    ports:
      - "13306:3306"
  app: amp;app
    ports:
      - NOT_SPECIFED
  worker: amp;worker
    ports:
      - "9002:9000"
  web:
    ports:
      - "8080:80"
  app-unittest:
    ports:
      - "9001:9000"
  web-unittest:
    ports:
      - "8081:80"
  

Может быть, это приложение не доступно?