第一次接触Docker部署就遇到了很多问题,比如著名的ip端口映射问题。
实际情况是,工作中需要将web App打包成镜像,同时将各配置参数(数据库、ip、端口等)通过shell脚本传递给镜像,从而达到一次构建,到处运行的目的。但是在传参过程中却遇到了ip映射问题,docker容器大概类似于“虚拟机”机制,里面包含了一个独立的系统,因此也有自己的ip和端口,而这个ip和端口和主系统(服务器)的ip和端口需要连接起来才能产生通讯(大概如此吧)。那么这时候传递给容器的ip就不能是期望的主机的ip,比如我们试图将该镜像服务的ip设置为192.168.6.29,因为这是主机的ip,其结果就是启动报错,提示如上图。查了好久,就一片博文说对了,是映射问题。当然这里也有可能是hosts文件出错,尽量排查下。其实这里只需要设置ip为:0.0.0.0即可,该ip即是代表本地的所有ip,好比如127.0.0.1代表本地ip。
再就是贴一下最近刚学习的docker命令,也许用得到:
查看运行中的docker:docker ps|grep xxxx
查看所有的docker:docker ps -a|grep xxxx
停止docker运行:docker stop 容器id
运行docker:docker run 容器id
进入容器:docker exec -it 容器id bash (需要先使用docker ps查看容器的id)
退出容器:exit
手动启动镜像:docker run -d -p 端口:端口 镜像地址 启动文件.sh
手动查看docker日志(如果容器启动失败):docker logs -f 容器id