前提:准备好服务器并配置好相应端口号,安装好docker并启动服务,本文以CentOS 7为例,基于SpringCloud框架的微服务项目进行讲解
1、配置文件此步骤的目的是在本地的开发环境中直接远程创建镜像。所以不是必须步骤,大家可以尝试此方法。如果不进行此步骤,则可以用XShell直接上传jar包至服务器,再登录服务器进行部署,详细参考文章使用DockerFile创建镜像。
值得说明的是,此方式又一个重大漏洞:因为服务器必须开放2375端口才能被远程开发机访问,所以有可能被植入恶意程序,所以这种方式只适用于测试环境,绝对不能用于生产环境。如果要使用此方法最好是对docker服务进行加密,只有拿到加密证书的客户端才能对服务进行操作,详细可参考Docker加密。
#对docker进行相关配置,使得客户端可远程对docker服务进行操作。
#最简单的方式就是将docker向外暴露。
#1、首先修改docker配置文件
vi /usr/lib/systemd/system/docker.service
#2、找到ExecStar并在后面加上-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
...第13行
ExecStart=/usr/bin/dockerd -H fd://
-H tcp://0.0.0.0:2375
--containerd=/run/containerd/containerd.sock
...
#3、重新加载配置文件并重启docker
systemctl daemon-reload
service docker restart
输入netstat -anp|grep 2375 显示docker正在监听2375端口,输入curl 127.0.0.1:2375/info 显示一大堆信息,证明远程api就弄好了。
本地开发环境配置:windows系统环境变量中新建DOCKER_HOST,值为tcp://xxx.xxx.xxx.xxx:2375(你改成你自己的docker服务器ip地址)。
完成以上操作后就可以在需要创建镜像的各个代码模块的pom文件中加入:
org.springframework.boot spring-boot-maven-plugin com.spotify docker-maven-plugin 1.2.2 openjdk:8 livegoods/banner:1.0 http://xxx.xxx.xxx.xxx:2375 / ${project.build.directory} ${project.build.finalName}.jar ["java","-jar","${project.build.finalName}.jar"] 9002
上述操作其实等同于打jar包并上传到服务器,再用DockerFile创建镜像
接下来在IDEA中进行打包,首先创建一个maven配置
然后查看镜像是否上传成功docker images ls即可



