指向运行在Ubuntu中的Docker容器的Web请求
假设我让mywebsite.com指向我的Ubuntu服务器 我的Ubuntu服务器上运行着一个docker容器 是否可以将对我的Ubuntu服务器的请求定向到docker容器公开的应用程序 我不太确定该搜索什么来回答这个问题。我想我必须将nginx设置为代理或其他什么指向运行在Ubuntu中的Docker容器的Web请求,ubuntu,docker,proxy,dns,Ubuntu,Docker,Proxy,Dns,假设我让mywebsite.com指向我的Ubuntu服务器 我的Ubuntu服务器上运行着一个docker容器 是否可以将对我的Ubuntu服务器的请求定向到docker容器公开的应用程序 我不太确定该搜索什么来回答这个问题。我想我必须将nginx设置为代理或其他什么 我知道可能会有更好的服务器设置,我想知道这是否可能。是的,这是可能的。你需要: 在容器内运行的应用程序或服务器正在侦听一个或多个端口 使用正确的命令启动Docker容器,以确保容器侦听的端口已发布并绑定到主机上的端口 确保所有
我知道可能会有更好的服务器设置,我想知道这是否可能。是的,这是可能的。你需要:
- 在容器内运行的应用程序或服务器正在侦听一个或多个端口
- 使用正确的命令启动Docker容器,以确保容器侦听的端口已发布并绑定到主机上的端口
- 确保所有防火墙规则都已正确配置
- 确保在主机端口上未侦听任何其他内容(docker命令将出现“address is use”错误)
FROM httpd:2.4
RUN echo "<h1>It works!</h1>" > /usr/local/apache2/htdocs/index.html
如果您在本地运行此操作(请参阅上面的所有注意事项),您可以访问http://localhost
并查看上面的消息。关键是-p
标志,它发布端口80
nginx有多种用途。您可以使用nginx作为执行侦听呈现/服务静态页面的应用程序。您还可以使用nginx作为客户端计算机(web浏览器等)和另一个正在运行的进程(在另一个容器或另一个服务器中)之间的代理。如果你能提供更多关于你真正想要完成的事情的细节,我也许能为你指明正确的方向
# Builds my Dockerfile above and tags the image as "test"
docker build . -t test
# Creates a container with the default command running, which
# starts Apache. Publishes (-p) port 80 inside the container and
# binds it to port 80 on the host machine
docker run --rm -p 80:80 test