我试图在本地为运行在码头上的应用程序设置一个自定义域名,因此,与其用http://localhost:8080从浏览器中访问我的应用程序,不如使用类似于http://myapp.dev的东西
这是我的/etc/主机文件
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配置
<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。
我做错了什么吗?
发布于 2019-10-31 22:27:03
将vhost.conf复制到docker映像将影响容器内的apache服务器端口。而不是如何从物理机器访问它。
vhost.conf不应该绑定主机名ServerName myapp.dev,因为在容器中主机名是不同的。
更改ServerName以接受来自127.0.0.1或*的请求
应该执行主机到容器端口的映射,以便从浏览器访问应用程序。
docker run --name <container-name> -p 80:80 -d <image-name>此命令将将主机端口绑定到容器端口。(在本例中,with服务器运行在端口80上,并配置为与主机端口80绑定)
想了解更多信息-
在docker文件中,它用于以下- https://docs.docker.com/compose/networking/
version: "3"
services:
apache:
image: apache:latest
ports:
- "80:80"例如,不使用坞-合成。但是,一旦容器处于运行状态,就可以按照描述的方式验证端口绑定。
使用docker container ls的输出验证端口绑定是否成功
$ 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文件。
https://stackoverflow.com/questions/58651571
复制相似问题