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 进行管理
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Maven构建推送Docker镜像到私有库的步骤如下: 1. 在pom.xml文件中添加Docker Maven插件的依赖。 2. 在pom.xml文件中添加Docker Maven插件的配置,包括Docker主机地址、Docker Maven插件版本、Docker镜像名称等信息。 3. 使用Maven命令打包项目,并生成Docker镜像。 4. 使用Maven命令推送Docker镜像到私有库。 具体步骤如下: 1. 在pom.xml文件中添加Docker Maven插件的依赖: ``` <dependency> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>${docker.maven.plugin.version}</version> </dependency> ``` 其中,${docker.maven.plugin.version}为Docker Maven插件的版本号。 2. 在pom.xml文件中添加Docker Maven插件的配置: ``` <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>${docker.maven.plugin.version}</version> <configuration> <imageName>your-docker-image-name</imageName> <dockerHost>http://your-docker-host:2375</dockerHost> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> ``` 其中,your-docker-image-name为Docker镜像名称,your-docker-host为Docker主机地址。 3. 使用Maven命令打包项目,并生成Docker镜像: ``` mvn clean package docker:build ``` 4. 使用Maven命令推送Docker镜像到私有库: ``` mvn docker:push ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值