Maven 项目自动构建 Docker 镜像推送到 Docker 服务器

Docker 安装

这里安装环境为 Centos7

#  安装依赖
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
# 设置阿里云镜像
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
# 安装 docker
$ sudo yum install docker-ce
# 启动 Docker
$ systemctl start docker

Docker 配置

注意这里是开放 Docker 的操作权限,作者是在内网使用所以没什么问题,请自行确认网络环境安全

修改 Docker 配置

#vi /usr/lib/systemd/system/docker.service

将 ExecStart 这一行后面修改为 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 注意这里就是 0.0.0.0 不要修改

在这里插入图片描述

# 重新加载配置文件
# systemctl daemon-reload
# 重启 Docker 
# systemctl restart docker 

查看 Docker 是否在监听 2375 端口

netstat -anp|grep 2375
curl 127.0.0.1:2375/info

在这里插入图片描述

安装 Portainer

Portainer

简介:Portainer是一个轻量级的管理界面,可以让您轻松地管理不同的Docker环境(Docker主机或Swarm集群)。Portainer提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。
官方GitHub:https://github.com/portainer/portainer

安装只需一条指令

docker run -d --privileged -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer

安装成功后访问你的服务器 9000 端口即可,注意不要使用 360 浏览器,可以使用 谷歌,搜狗等浏览器
在这里插入图片描述

Maven 配置

在 pom 文件中添加插件

<plugin>
     <groupId>com.spotify</groupId>
     <artifactId>docker-maven-plugin</artifactId>
     <version>0.4.13</version>
     <configuration>
         <imageName>myproject/test:0.0.1</imageName>
         <baseImage>java</baseImage>
         <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
         <resources>
             <resource>
                 <targetPath>/</targetPath>
                 <directory>${project.build.directory}</directory>
                 <include>${project.build.finalName}.jar</include>
             </resource>
         </resources>
         <dockerHost>http://你的Doker IP :2375</dockerHost>
     </configuration>
 </plugin>

简要说明一下插件的配置:
① imageName:用于指定镜像名称,其中itmuch是仓库名称,microservice-discovery-eureka是镜像名称,0.0.1是标签名称。
② baseImage:用于指定基础镜像,类似于Dockerfile中的FROM指令。
③ entrypoint:类似于Dockerfile的ENTRYPOINT指令。
④ resources.resource.directory:用于指定需要复制的根目录,${project.build.directory}表示target目录。

⑤ resources.resource.include:用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。
dockerHost 指定你的 Docker 服务器监听的端口

运行命令打包

mvn clean package docker:build

在这里插入图片描述
在这里插入图片描述
可以看到 Docker 镜像已经被推送上服务器了

启动项目

首先是传统的 Docker 命令行启动

docker run -d -p 18080:8080  myproject/test:0.0.1

这里的 -p 18080:8080 是指 将容器内部的 8080 端口映射到服务器的 18080端口上,-d 标识后台运行
myproject/test:0.0.1 是指刚刚上传的镜像及版本号
在这里插入图片描述
记得开放防火墙端口权限
在这里插入图片描述
接口测试成功

Portainer 管理多个服务器 Docker

Portainer 可以通过 Docker 开放出来的 2375 端口远程管理多个 Docker
首先,在Endpoints 里面新建一个
在这里插入图片描述
选择管理 Docker ,填写好你的 IP和端口,确定即可
在这里插入图片描述
在这里插入图片描述
之后就可以在 Home 目录中自由切换不同的服务器对 Docker 进行管理
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值