Docker Virtualhost在容器外面

时间:2018-06-19 00:07:06

标签: docker docker-compose dockerfile docker-container

Docker正常运行,但我想更改服务器名称的名称,现在它以这种方式http://localhost:8080工作,但我想使用另一个网址同一个主人,它可能吗?

我已经在容器内部配置了虚拟主机,并在127.0.0.1容器内的所有内容中添加/etc/hosts test.local。
现在,从我的容器内部,URL(test.local)响应很好,但是当我从外面尝试时只能工作localhost:8080

任何帮助

2 个答案:

答案 0 :(得分:0)

要问的主要问题是:

使用虚拟主机进行本地Docker开发

请阅读--network=host或Docker-Compose network_mode: "host"

请检查:

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/configure-dns/

Multiple vhosts on one and the same docker container

答案 1 :(得分:0)

我认为您需要一个按名称侦听的docker容器,而不是使用具有不同端口的localhost。

  1. 在/ etc / hosts中为所需的服务器名称添加dns条目

    $ nano / etc / hosts

    127.0.0.1 test.local

  2. 编辑composer.yml

版本:“ 2”

 services: 
 web:
    build: ./docker/
    ports:
        - "80:80"
    volumes:
        - .:/var/www/app
    tty: true
    extra_hosts:
        - "test.local:127.0.0.1"
    hostname: test
    domainname: local
  1. 在DockerFile中添加服务器名称:

    运行printf“ 127.0.0.1 api.local” >> / etc / hosts

  2. 在DockerFile中配置虚拟主机

  3. 构建容器:

    $ docker-compose up -d

  4. 检查主机名是否已应用于容器:

$ docker exec -it test_local_web_1主机名

它应该返回:

$ test.local

  1. 检查服务器是否正在运行并通过服务器名称进行监听:

$ curl -get http://test.local