首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从局域网上的另一台机器访问Docker容器

如何从局域网上的另一台机器访问Docker容器
EN

Stack Overflow用户
提问于 2016-09-01 02:20:28
回答 1查看 6.6K关注 0票数 5

我正在使用 Desktop作为,并在我的主机上运行一个容器。我可以通过主机上的本地主机访问容器。但是它不能从局域网上的其他系统中获得。

容器是nginx服务器,它可以在localhost:80上访问,但不能从同一局域网上的其他系统访问。

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

编辑1:添加停靠-组合配置和“停靠信息”命令输出

代码语言:javascript
复制
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

码头信息

代码语言:javascript
复制
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

用于启动容器的命令:

代码语言:javascript
复制
docker-compose up -d nginx
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-01 02:58:18

你没有列出你要使用的命令。这对我有用。我可以通过我的iphone (同一个wi网络)使用我的mac的ip地址来访问它。

代码语言:javascript
复制
docker run -d --name myserver -p 80:80 nginx:1.10-alpine

编辑:样例撰写文件。

创建一个与您的服务内部的桥接网络(骨干网)。他们都通过这个网络进行交流。唯一的外部访问点是通过nginx代理(端口:节)。

不要在任何地方使用ip地址(如在nginx.conf中)。只使用服务名称。例如使用oracle:1521连接到甲骨文。

找到其他存储html文件的地方。~/码头/.码头只能由码头人使用。

代码语言:javascript
复制
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
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39261743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档