修改Docker容器WordPress的端口映射

最近想把服务器的80端口腾出来装Nginx做反向代理,起因是百度云的域名不支持隐性URL跳转,但我又想实现二级域名直接访问系统,所以只能自己动手丰衣足食了,略微思考?,想到可以利用Nginx的反向代理功能,把二级域名转发到主机的其他端口,从而实现二级域名直接访问不同的系统。

那么我们首先就需要把占用着80端口的Docker容器腾到其他端口去,中间遇到一些坑和问题,所以用这篇文章记录下来。

一、停止Docker服务

service docker stop

二、修改容器配置文件

进入想要修改的容器目录下,并编辑hostconfig.json 文件

cd /var/lib/docker/containers/[容器id]/hostconfig.json

hostconfig.json文件中会存在一个代码片段,直接修改HostPort为想要映射的端口即可,之后使用:wq保存退出。

"80/tcp": [ 
{
 "HostIp": "0.0.0.0",
 "HostPort": "80"
 }
]

三、重启Docker服务和Docker容器

service start docker
或者
service restart docker
docker start [容器id]

四、问题和总结

到这里其实已经修改完毕了,但是如果直接访问修改的端口的话其实是无法访问的,另外还遇到了修改端口后依旧映射的还是原端口的问题,这里记录一下思考过程和解决办法。

1.修改端口不起作用

先说第一个问题,在第一次修改端口号后,我直接兴致勃勃地重启了docker和容器,发现还是只能通过原端口进行访问,用docker ps -a查看后发现端口还是原来的没有变,最后找到原因:需要先停止docker服务修改才能成功,不然会修改失败。

2.成功修改端口后无法访问Wordpress

再说第二个问题,修改成功后访问新的端口却一直提示服务器拒绝访问,查过docker容器列表,发现端口已经映射到新的的端口上了,说明docker端口修改上应该是没有问题了。

于是我想到会不会是防火墙拦截了新端口的访问,于是我试着把新端口加入防火墙的白名单中,然后访问还是服务器拒绝访问,关闭防火墙,也是服务器拒绝访问。那说明就不是防火墙拦截了请求。

然后我又试着把服务器上的Tomcat的端口修改成了其他端口,结果神奇的是竟然可以访问,既然服务器,docker都没有问题,那结论就很简单了,会不会是Wordpress拦截了我们从新端口访问呢?

之后查了资料,发现在Wordpress的数据库中有张表wp_options,其中有两个变量siteurl和home。里面记录了博客系统的访问地址,如果不是这个地址访问的话会被拦截下来并拒绝访问,所以只要直接修改数据库中的这两个变量为我们新的端口地址就好了。

修改过后,直接访问ip:端口,果然直接访问成功了。

修改Docker容器Wordpress的端口映射-Luninousail ' Blog

本文系作者 @ 原创发布在 Luninousail ' Blog。未经许可,禁止转载。

喜欢()
评论 (0)
183 文章
4 评论
25 喜欢
Top