这个问题可大可小,但是这个bug很恶心!这个bug产生的场景就是docker的一个容器,想要访问同一台宿主机docker中的另一个容器使用宿主机ip或者localhost是死活连接不上,这里在宿主机上使用curl命令是能访问的,但是就是在另一个容器中无法连接,那么这个问题就是docker会为每个容器自动分配ip产生的!

这里我以docker安装的Elasticsearch配置同宿主机上docker安装的nginx的自定义词库为案例,这也是我在实际配置中的时候有碰到这个问题,所以决定还是将这个问题记录一下

我的宿主机ip为192.168.0.188

查看Docker中容器的IP_docker


ES的ik分词器远程自定义词库这样写不行

查看Docker中容器的IP_自定义_02


这样也不行

解决方案

1.查看docker为nginx分配的IP地址

docker inspect nginx8089  |grep IPAddress

查看Docker中容器的IP_docker_03


2.修改远程自定义词库的地址

查看Docker中容器的IP_docker_04


3.重启ES测试

查看Docker中容器的IP_docker_05


测试成功!

一句话:docker虽好,坑且挺多!