嘿,伙计们,我有一个码头集装箱A,它的域名附加在主机B上,作为well.....how,我可以通过A的域名访问该容器A,而不是从主机B的本地网络上的计算机C访问B的ip地址或域名。
因此,C -> A( via wwww.cname.url)而不是C -> B( www.bname.url:port) -> A
例如:
下面是一个与服务对接的组合
version: "3.2"
services:
php:
links:
- mysql
image: arm32v6/php:7.1.24-fpm-alpine3.8-lavalite
networks:
- backend
working_dir: /var/www/html
volumes:
- ./website/:/var/www/html/
privileged: true
node:
domainname: docker.local
hostname: node
networks:
frontend:
aliases:
- node.docker.local
links:
- "apache:dev.docker.local"
depends_on:
- apache
image: arm32v7/node:latest
entrypoint: yarn
command: twill-dev
volumes:
- ./website:/usr/src/app
working_dir: /usr/src/app
ports:
- "3000:3000"
- "3001:3001"
apache:
domainname: docker.local
hostname: dev
image: arm32v7/httpd:2.4
depends_on:
- php
- mysql
networks:
frontend:
aliases:
- apache
- dev.docker.local
backend:
aliases:
- apache
privileged: true
ports:
- "8880:80"
working_dir: /var/www/html
volumes:
- ./website/:/var/www/html/
- ./httpd.conf:/usr/local/apache2/conf/httpd.conf
- ./fpm.conf:/usr/local/apache2/conf/extra/httpd-vhosts.conf
mysql:
image: yobasystems/alpine-mariadb:arm32v7
volumes:
- ./datadir:/var/lib/mysql
networks:
- backend
environment:
- MYSQL_VERSION=5.7
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_USER=test
- MYSQL_PASSWORD=testpass
- MYSQL_DATABASE=test_db
networks:
frontend:
external:
name: localnet
backend:我希望能够访问服务apache,其域名设置为dev.docker.local,其ip位于网络17.18.0.1/24上
主机的IP位于网络192.168.1.0/24上,域名为dev.server.local
我在网络192.168.1.0/24上有一个dev pc,它可以通过主机IP访问服务容器,并且通常是为特定服务公开的端口。
UPDATE主机可以从网络以外的server.local到达我的网络接口有以下条目
dns-search server.local
dns-domain server.local码头容器有以下几个
主机名nginx域名server.local
我还需要编辑主机文件还是resolv.conf文件?
主机似乎正在运行avahi服务发现。这会影响什么吗?
我也能
发布于 2018-12-11 12:45:58
您可以通过配置带有绑定到子域的容器的nginx容器来实现这一点。
因此,例如,主机可以通过域example.com访问,并且您希望在php.example.com上可以访问php容器,您可以使用如下设置:
services:
php:
image: arm32v6/php:7.1.24-fpm-alpine3.8-lavalite
environment:
- VIRTUAL_HOST=php.example.com
nginx-proxy:
image: jwilder/nginx-proxy
depends_on:
- php
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro对子域的任何请求都将首先发送到主机,这是由nginx绑定的,而nginx又将注册由于请求子域php,所以应该将用户发送到该容器。
我希望这能帮到你,如果你有什么问题,请告诉我。
https://stackoverflow.com/questions/53722890
复制相似问题