如果你想让外界可以访问到在默认的 bridge 网络上的容器提供的服务,你要告诉 docker 一声,要使用哪些端口 .. 在镜像的仓库介绍页面上,会告诉你这个镜像使用的端口 ...
或者我们也可以使用 docker inspect 去查看一下 .. 后面加上镜像的名字 .. 比如查看一下 nginx 这个镜像 .. 在这个 ExposedPorts 里面,会告诉你这个镜像使用的端口 .. 这个镜像使用了两个端口.. 一个是 443 ,一个是 80 .. 443 应该是使用 https 的时候使用的端口 .. 80 是 http 默认的端口 ..
在创建容器的时候,我们可以指定一下主机跟容器之间的端口的映射关系 .. 创建一个在后台运行的容器 .. 名字是 web3 .. 再加上一个 --publish 选项 .. 它的简写形式就是一个 p ...
然后先是主机上的端口号 ... 比如 80 .. 冒号的右边是容器的端口号 .. 这里也是 80 .. 这个意思就是,如果有人访问主机上的 80 这个端口的时候,这个访问会被定向到这个容器的 80 端口上 .. 这个容器用的镜像是 nginx ...
docker run -d --name web3 -p 80:80 nginx
这里提示了一个错误,意思就是 80 这个端口被占用了 .. 这是因为之前我们创建了一个在 host 网络上的容器,它也使用了 80 这个端口 ..
我们可以先把这个容器删除掉 .. docker rm -f web_host .. 强制删除 web_host 这个容器 ..
再删除一下刚才创建的 web3 这个容器 .. docker rm -f web3 ..
然后重新执行一下这个创建容器的命令 ... 再去查看一下主机的 ip 地址 .. docker-machine inspect default .. default 是我正在用的 docker 主机的名字 ..
IPAddress 后面的东西就是这台主机的 ip 地址 .. 复制一下 ... 在浏览器上访问一下这个地址 ... 因为 http 默认的端口号就是 80 ,所以不需要指定这个端口号 ..
这里显示的内容,就是 web3 这个容器的 nginx 提供的服务 ..