Apache 使用自定义域名访问docker容器化应用程序
我正在尝试为我在docker上运行的应用程序在本地设置一个自定义域名,因此,与其使用从浏览器访问我的应用程序,不如使用 这是我的/etc/hosts文件Apache 使用自定义域名访问docker容器化应用程序,apache,docker,docker-compose,dockerfile,appdomain,Apache,Docker,Docker Compose,Dockerfile,Appdomain,我正在尝试为我在docker上运行的应用程序在本地设置一个自定义域名,因此,与其使用从浏览器访问我的应用程序,不如使用 这是我的/etc/hosts文件 127.0.0.1 localhost 127.0.0.1 myapp.dev 在我的Dockerfile中,我有一个vhost文件 复制docker/vhost.conf/etc/apache2/sites available/000 default.conf 将配置从本地复制到apache配置中 <Virtu
127.0.0.1 localhost
127.0.0.1 myapp.dev
在我的Dockerfile中,我有一个vhost文件
复制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>
ServerName myapp.dev
服务器管理员webmaster@localhost
DocumentRoot/var/www/html/public
ErrorLog/var/log/apache2/error.log
CustomLog/var/log/apache2/access.log组合
但是当我尝试使用本地域名访问应用程序时,会收到一条消息,从浏览器上显示“无法连接”
我做错什么了吗?将
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>
例如,不使用docker compose。但一旦容器处于运行状态,就可以按照所述验证端口绑定
使用docker容器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/hosts文件。您使用哪些命令启动容器?您应该使用http://myapp.dev:8080
访问容器(您忘记了示例中的8080端口)。这只是一个输入错误,或者你真的错过了它?在尝试访问urlhttp://myapp.dev:8080
使用端口我得到以下信息:安全连接失败,重定向到https://Change ServerName接受来自127.0.0.1的请求。这就是我在vhost.conf中所要做的一切,还需要编辑/etc/hosts文件。
$ 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