如何从另一台机器上访问泊坞容器上网卡

问题描述 投票:2回答:1

我使用泊坞Mac版桌面和运行我的主机上的容器。我可以通过本地主机访问容器主机上。但它无法从局域网上的其他系统。

该容器是nginx的Web服务器,这是localhost:80访问,但不能从同一个LAN网络上的其他系统访问。

我希望其他系统能够访问主机上的容器。

编辑1:添加搬运工-撰写配置和“搬运工info”命令输出

version: '2'

services:
  nginx:
    image: artifactory.service.dev:5000/nginx:latest
    network_mode: host
    ports:
      - "80:80"
      - "10001-10020:10001-10020"
      - "8080:8080"
    volumes:
      - ~/docker/.docker/nginx/html:/usr/share/nginx/html

  redis:
    image: artifactory.service.dev:5000/redis:latest
    restart: always
    ports:
      - "6379:6379"

  activemq:
    image: artifactory.service.dev:5000/rmohr/activemq:5.11.1
    restart: always
    ports:
      - "61613:61613"
      - "61616:61616"
      - "8161:8161"

  oracle:
    image: artifactory.service.dev:5000/oracle-12c:latest
    restart: always
    ports:
      - "1521:1521"
    volumes:
      - ~/docker/.docker/oracle:/tmp/oracle:ro
    privileged: true

泊坞窗信息

Containers: 4
 Running: 3
 Paused: 0
 Stopped: 1
Images: 38
Server Version: 1.12.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 310
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.19-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 6
Total Memory: 11.71 GiB
Name: moby
ID: LBLG:7UQC:W67Q:J744:QAHE:4JLX:QRVB:2QQD:PTB2:MV75:HD6Y:FROD
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 50
 Goroutines: 72
 System Time: 2016-09-01T06:51:40.063477725Z
 EventsListeners: 1
No Proxy: *.local, 169.254/16, *.dev
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 artifactory.service.dev:5000
 127.0.0.0/8

命令用于启动容器:

docker-compose up -d nginx
docker docker-container docker-for-mac docker-desktop
1个回答
4
投票

你没有列出你所使用的命令。这对我的作品。我可以用我的Mac的IP地址,从我的iphone(同一Wi-Fi网络)访问它。

docker run -d --name myserver -p 80:80 nginx:1.10-alpine

编辑:样本撰写文件。

创建一个桥接网络(骨干),它是内部的服务。他们都通过这个网络进行通信。唯一的外部接入点是通过你的nginx代理(端口:部分)。

不要在任何地方使用的IP地址(例如,在nginx.conf)。仅使用的服务名称。例如,使用oracle:1521连接到oracle。

找别的地方来存储您的HTML文件。 〜/搬运工/ .docker应该仅由坞窗使用。

version: "2"

services:
  nginx:
  image: artifactory.service.dev:5000/nginx:latest
  ports:
    - "80:80"
    - "10001-10020:10001-10020"
    - "8080:8080"
  volumes:
    - ~/docker/.docker/nginx/html:/usr/share/nginx/html
  networks:
    - backbone

  redis:
  image: artifactory.service.dev:5000/redis:latest
  restart: always
  expose:
    - "6379"
  networks:
    - backbone

  activemq:
  image: artifactory.service.dev:5000/rmohr/activemq:5.11.1
  restart: always
  expose:
    - "61613"
    - "61616"
    - "8161"
  networks:
    - backbone

  oracle:
  image: artifactory.service.dev:5000/oracle-12c:latest
  restart: always
  expose:
    - "1521"
  volumes:
    - ~/docker/.docker/oracle:/tmp/oracle:ro
  privileged: true
  networks:
    - backbone

networks:

  backbone:
    driver: bridge
© www.soinside.com 2019 - 2024. All rights reserved.