我设置了一个带有db容器、nextcloud容器和nginx容器的Docker网络。我可以用'ip-adress':8080访问nextcloud网站,但是我想不指定端口8080来访问它。我该怎么做呢?
这是我的docker-compose.yml
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发布于 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。
https://stackoverflow.com/questions/66226750
复制相似问题