IDEA中使用Docker: 图形化 or 命令行 ,你更稀罕那个??

Docker简介:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口。

我的理解:对应用更加深层次的封装,是应用完全不受真实运行环境的影响!

CMD: 命令式的Docker (默认访问的2375端口

  • 构建镜像:mvn clean package docker:build

  • 运行镜像: docker run -p 8888: 8888 -t 镜像名称

填坑:

问题1:本地和Docker中起项目,占用主机相同的port,但是不报错,还都能运行???

  因为Docker端口映射所说的宿主机,并不是指本地的机器;可以简单认为,Docker是先在本地的机器上安装了一个虚拟机,这个虚拟机才是所说的宿主机;

Docker上所有的应用都是运行在这个宿主机上的。

问题2:

Docker进程间通信,服务间的调用

举个栗子:实现服务注册的功能

eureka-server部署使用name参数指定名字:         docker run --name eureka-server【容器名字】 -p 8888:8888  镜像名  

eureka-client中部署使用link参数链接注册服务器: docker run --link eureka-server【要链接的容器名字】:eureka-server 【配置中写的注册服务器的地址】 -p 8801:8801  镜像名

注:link的功能相当于做一个映射和绑定

GUI:图形式的Docker

推荐博文:http://www.solinx.co/archives/875

安装Docker插件 

 Docker全局配置:

编写Dockerfile文件: 略

dockerfile基础命令学习:http://www.cnblogs.com/wenbronk/p/6387830.html

Dokcer Deployment运行配置:

 发布:

 

访问验证

 

过程填坑:

报错:

Connect to localhost:2375 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect

原因:其实是由于你没有安装docker server,用maven插件编译生成docker镜像的时候,默认访问的server是本机的2375端口

解决方法:

你可以在自己电脑上安装一个docker ,参考:http://www.cnblogs.com/zhaojinxin/p/7580881.html

或者

在远程服务器上安装docker:

第一步:

(亲测有效)Mac for docker 开启Remote API(远程接口) : https://my.oschina.net/u/2306127/blog/777695 

总得来说三种方式:

方式一:运行docker-proxy镜像:docker run -p 2375:2375 -v /var/run/docker.sock:/var/run/docker.sock  -d -e PORT=2375 shipyard/docker-proxy

解释:运行docker-proxy,将docker-proxy镜像的2375端口映射为本地的2375端口;

方式二:图形化设置

        

Ubuntu上修改配置:http://www.cnblogs.com/zqifa/p/linux-docker-3.html

(亲测有效)CentOs7上修改配置:http://blog.csdn.net/faryang/article/details/75949611

注: 如果还是连接不上,可是时防火墙的原因:

防火墙开放该端口:

firewall-cmd --zone=public --add-port=2375/tcp --permanent

重启防火墙

firewall-cmd --reload

原文地址:https://www.cnblogs.com/zhaojinxin/p/7581741.html