docker 遇到的一些坑

1、docker 容器中vim、vi等命令无法使用的那些事

  进入容器后,

  用命令更新源:apt-get update   

  安装:apt-get install vim

2、docker  hosts 映射问题

    spring boot项目 是使用自定义域名来 访问注册中心的,部署进容器里时,需要对docker里的hosts修改,不然访问不了

  第一种方法使用挂载的形式:

  docker run -d -p 6020:6020 -v /etc/hosts:/etc/hosts -v /home/myapp/logs:/logs --name myapp myapp

 这种方式需要先在宿主机里先设置好hosts,  但发现有些服务器还是不生效,猜测可能是权限的问题,有同学说可以采用cat 形式,cat /etc/hosts> /etc/hosts 这种方式没有试

 第二种方法使用 --add-host:

 docker run -d --add-host eureka.zzf.com:192.168.10.21  --name myapp  -p 6020:6020 -dit myapp

3、docker  容器IP  桥接问题

背景:微服务中 子项目服务S(位于主机B) 注册到 Eureka(位于主机A),从注册中心(位于主机A) 获取 配置中心 服务 的地址(ip及端品)

因为 Eureka 注册中心 及 配置中心 服务 都是部署 到  docker  容器里,启动一个容器就会分配一个ip 给服务,如果容器ip 跟 另一个服务(如:子项目服务S)的ip 不在同一网段,则拉取不到配置或调不了其他服务

https://blog.csdn.net/qwertyupoiuytr/article/details/54142055 网上的一个解决办法

但我参照着来做了,虽然已经添加多了ifcfg-br0,并通过ifconfig 也看到 br0已经是同一网段了,

但当重启容器 后 docker 还是自己增加多一个 docker0网卡信息,还是通过NAT 的形式进行联网的。

我的解决办法如下:

编辑/etc/docker/daemon.json文件,添加内容 "bip": "ip/netmask"  [ netmask 不能宿主机相同 ]  

   {"bip":"192.168.2.108/25"}

 

你可能感兴趣的:(docker)