首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问Docker容器而不指定其HTTP端口?

如何访问Docker容器而不指定其HTTP端口?
EN

Stack Overflow用户
提问于 2021-02-16 22:55:26
回答 1查看 66关注 0票数 0

我设置了一个带有db容器、nextcloud容器和nginx容器的Docker网络。我可以用'ip-adress':8080访问nextcloud网站,但是我想不指定端口8080来访问它。我该怎么做呢?

这是我的docker-compose.yml

代码语言:javascript
复制
version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud:fpm
    restart: always
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

  web:
    image: nginx
    restart: always
    ports:
      - 8080:80
    links:
      - app
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    volumes_from:
      - app
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 23:07:39

您想要的是避免在请求URI时必须指定端口。一种方法是使用您正在使用的协议的默认端口(80用于HTTP,443用于https,21用于FTP,etc)。然后依靠您的客户端自动回退到默认端口。

在Docker编写的配置文件中,公开端口的语法定义如下:<host_port>:<container_port> (参见documentation)。这意味着8080:80在端口8080上公开了停靠主机上容器的端口80。

在您的示例中,该服务公开了一个HTTP服务器,这意味着您必须将其更改为默认端口80才能将其省略。将web.services.ports[0]8080:80更新为80:80,您将能够从'ip-adress'访问nextcloud。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66226750

复制
相关文章

相似问题

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