微服务Docker容器化自动部署

目录

 

阿里云镜像仓库配置

​ Maven插件实现springcloud微服务容器化自动部署

1、配置maven环境

2、修改宿主机的docker配置

3、自动化部署微服务项目


阿里云镜像仓库配置

1、登录阿里云:https://account.aliyun.com/login/login.htm , 然后进入管理控制台,选择容器镜像服务,点击镜像仓库。

注意:第一次进入可能会出现如下提示,则设置一下阿里云 Docker 镜像仓库传统一密码。 特别注意 :后面上传镜像时,用的就是这个设置的密码, 帐号还是登录阿里云的帐号。

2.、创建一个公开镜像仓库

 

3、点击镜像库可以看到操作指南中有登陆上传拉取镜像的命令。

 Maven插件实现springcloud微服务容器化自动部署

1、配置maven环境

2、修改宿主机的docker配置

  • 修改宿主机的docker配置,让其docker服务可以远程访问, 暴露的docker服务端口号 2375。
vim /lib/systemd/system/docker.service

 

  • 在 ExecStart= 后添加加配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

 

  • 0.0.0.0 代表所有 ip ,也可指定 ip。修改后如下:
  • 刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker

 

  • 验证是否生效,访问:http://192.168.10.11:2375/version , 响应如下内容则成功:

3、自动化部署微服务项目

(没有学习微服务的朋友,可以先了解一下微服务和springcloud)

部署配置中心

1、在 Maven 的安装目录下的 settings.xml 文件中添加阿里帐号和 镜像固定密码
<servers>
	<server>
	  <!--maven的pom中可以根据这个id找到这个server节点的配置-->  
	  <id>docker-aliyun</id>
	  <!--这里是在阿里云注册的账号-->
	  <username>在阿里云注册的账号</username>
	  <!--这里是在阿里云注册的密码-->
	  <password>在阿里云注册的密码</password>
	</server>
  </servers>

2、在配置中心工程的 pom.xml 增加插件配置(根据自己的具体情况做一些修改)

<build>
    <!-- 打jar包的文件名 -->
    <finalName>config</finalName>
    <plugins>
        <!-- 插件一定要在其他构建插件之上,否则打包文件会有问题。 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- docker的maven插件,官网:
              https://github.com/spotify/docker-maven-plugin -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.0.0</version>
            <!--生成镜像相关配置-->
            <configuration>
                <!-- 将forceTags设为true,这样就会覆盖构建相同标签的镜像  -->
                <forceTags>true</forceTags>
                <!-- 远程 docker 宿主机地址, 端口号是/lib/systemd/system/docker.service所暴露的端口号, 生成镜像到docker中 -->
                <dockerHost>http://192.168.10.11:2375</dockerHost>
                <!--内容是之前修改的maven的settings.xml配置文件中,server节点的id-->
                <serverId>docker-aliyun</serverId>
                <!-- 镜像名:阿里云镜像仓库地址
                            ${project.artifactId}引用当前工程名,
                            ${project.version}引用当前工程版本号
                            registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名:版本号 -->
                <imageName>registry.cn-hangzhou.aliyuncs.com/haogenmin_study/${project.artifactId}:${project.version}</imageName>
                <!--基础镜像-->
                <!--<baseImage>jdk1.8</baseImage>-->
                <baseImage>java</baseImage>
                <!--类似于Dockerfile的ENTRYPOINT指令-->
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <resources>
                    <resource>  <!-- 指定打包的资源文件 -->
                        <targetPath>/</targetPath> <!-- 指定要复制的目录路径,这里是当前目录 -->
                        <directory>${project.build.directory}</directory> <!-- 指定要复制的根目录,这里是target目录 -->
                        <include>${project.build.finalName}.jar</include> <!-- 这里指定最后生成的jar包 -->
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

3、打包上传到阿里云

 
 
宿主机查看:
 
 
阿里云查看:
4、在容器中启动项目
 
5、访问检查
这是我放在git上的配置文件,通过配置中心微服务请求到了数据,说明运行成功。
 
部署Eureka注册中心
 
1、先保证配置中心的服务开启,注册服务需要配置中心的配置文件
 
2、在阿里云创建一个相应的仓库
 
 
3、修改eureka的配置文件中需要更改的IP地址,因为转移到生产环境运行,IP自然不同。
 
 
4、在eureka项目pom文件中增加插件配置,同上,然后同样打包上传运行。
 
 
5、测试结果
 
部署一个注册在注册中心的服务提供者
1、先启动mysql,rabbitmq等需要的容器,前面几篇有说过启动步骤。
 
2、同理修改项目中相应的IP和端口。
 
3、增加插件配置。
 
4、打包,上传,运行。
 
 
 
(微服务的知识有机会再分享)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值