第一次接触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


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐