Docker远程发布项目

Docker远程发布项目

前提:准备好服务器并配置好相应端口号,安装好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文件中加入:

<build>
    <plugins>
    	<plugin>
    		<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
		<plugin>
    		<groupId>com.spotify</groupId>
			<artifactId>docker-maven-plugin</artifactId>
			<version>1.2.2</version>
			<configuration>
                <!-- FROM -->
                <baseImage>openjdk:8</baseImage>
                <imageName>livegoods/banner:1.0</imageName>
                <dockerHost>http://xxx.xxx.xxx.xxx:2375</dockerHost>
                <!-- ADD -->
                <resources>
                    <resource><!-- 复制到容器中的文件,命名和本地文件命名一致。 -->
                    <!-- 复制到容器中的什么位置? -->
                    <targetPath>/</targetPath>
                    <!-- 本地文件所处目录 -->
                    <directory>${project.build.directory}</directory>
                    <!-- 本地文件的名称  -->
                    <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
                <!-- ENTRYPOINT -->
                <entryPoint>["java","-jar","${project.build.finalName}.jar"]</entryPoint>
                <exposes>
                    <expose>9002</expose>
                </exposes>
        	</configuration>
        </plugin>
	</plugins>
</build>

上述操作其实等同于打jar包并上传到服务器,再用DockerFile创建镜像

接下来在IDEA中进行打包,首先创建一个maven配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后查看镜像是否上传成功docker images ls即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值