使Docker容器在同一网络上的VM外部可用?

时间:2020-08-10 01:00:08

标签: docker docker-compose virtualbox host docker-container

在安装iPeer https://github.com/ubc/iPeer/之后,它在本地VM上运行良好。现在,我试图弄清楚如何使iPeer网站在我的VM之外可用

iPeer如何在同一网络上的VM外部使它可用?例如,同一网络上的另一台计算机?

请告知

1 个答案:

答案 0 :(得分:0)

要将容器暴露于网络的其余部分,您需要将VM的端口映射到容器的端口。查看iPeer的自述文件中的一些示例,请复制用于运行容器的行。

似乎有一些运行iPeer的选项:

docker run -d -p 4444:4444 -e SE_OPTS="-enablePassThrough false" -e TZ="Canada/Pacific" --name selenium-local --shm-size 2g selenium/standalone-firefox:3.7.1-argon

在运行-p HOST_PORT:CONTAINER_PORT的docker上,让您将端口映射为可从网络访问,就好像该端口直接在VM上运行一样。 (https://docs.docker.com/engine/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:
    image: 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"

将本地por 13306映射到容器端口3306,并允许您从外部访问它。

如果您正在使用该存储库中的默认docker-compose,它将看起来是暴露的:

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

也许该应用是未被公开的应用?