I am looking for a way to assign a domain name to the container when it is started. For example, I want to start a web server container, and to be able to access web pages via domain name. Is there an easy way to do this ?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
For all I know, Docker
doesn't provide this feature out of the box. But surely there are several workarounds here. In fact you need to deploy a DNS on your host that will distinguish the containers and resolve their domain names in dynamical IPs. So you could give a try to:
- Deploy some of Docker-aware DNS solutions (I suggest you to use
SkyDNSv1
/SkyDock
); - Configure your host to work with this DNS (by default
SkyDNS
makes the containers know each other by name, but the host is not aware of it); - Run your containers with explicit
--hostname
(you will probably use schemecontainer_name.image_name.dev.skydns.local
).
You can skip step #2 and run your browser inside container too: it will discover the web application container by hostname.