首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用自定义域名访问docker容器化应用程序

使用自定义域名访问docker容器化应用程序
EN

Stack Overflow用户
提问于 2019-10-31 21:49:15
回答 1查看 909关注 0票数 0

我试图在本地为运行在码头上的应用程序设置一个自定义域名,因此,与其用http://localhost:8080从浏览器中访问我的应用程序,不如使用类似于http://myapp.dev的东西

这是我的/etc/主机文件

代码语言:javascript
复制
127.0.0.1       localhost
127.0.0.1       myapp.dev

在我的Dockerfile中,我有一个vhost文件COPY docker/vhost.conf /etc/apache2/sites-available/000-default.conf,它将配置从本地复制到apache配置

代码语言:javascript
复制
<VirtualHost *:80>

    ServerName myapp.dev
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/public

    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

</VirtualHost>

但是当我尝试使用本地域名访问应用程序时,我会从浏览器中得到一条消息,上面写着Unable to connect

我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 22:27:03

vhost.conf复制到docker映像将影响容器内的apache服务器端口。而不是如何从物理机器访问它。

vhost.conf不应该绑定主机名ServerName myapp.dev,因为在容器中主机名是不同的。

更改ServerName以接受来自127.0.0.1*的请求

应该执行主机到容器端口的映射,以便从浏览器访问应用程序。

代码语言:javascript
复制
docker run --name <container-name> -p 80:80 -d <image-name>

此命令将将主机端口绑定到容器端口。(在本例中,with服务器运行在端口80上,并配置为与主机端口80绑定)

想了解更多信息-

在docker文件中,它用于以下- https://docs.docker.com/compose/networking/

代码语言:javascript
复制
version: "3"
services:

  apache:
    image: apache:latest
    ports:
      - "80:80"

例如,不使用坞-合成。但是,一旦容器处于运行状态,就可以按照描述的方式验证端口绑定。

使用docker container ls的输出验证端口绑定是否成功

代码语言:javascript
复制
$ docker run --name mynginx1 -p 80:80 -d nginx
ba2565a8e7e4a3e5909cb055603eb5161dd50e6f17019b2a9f11ba9b2b4888e4
$ docker container ls | grep mynginx1
ba2565a8e7e4        nginx               "nginx -g 'daemon of…"   12 seconds ago      Up 10 seconds       0.0.0.0:80->80/tcp    mynginx1

接下来,用所需的DNS名称更新/etc/host文件。

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

https://stackoverflow.com/questions/58651571

复制
相关文章

相似问题

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