Maven打包成Docker镜像上传至私库

本教程将一个标准的maven项目直接打包成docker镜像并上传至私有构件库

创建私有docker镜像库

在nexus操作界面上,选择创建资源库,选择docker资源库

  • docker(hosted):本地私有构件库
  • docker(proxy):可配置代理网站,本地没有的构建,可在代理网站中下载
  • docker(group):可将hosted和proxy同时配置在group中,使用时可以只使用group的地址

本教程只创建docker(hosted)一种资源库,按照截图内容填写即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLdPr7S7-1600760914267)(evernotecid://DC551418-3E65-468E-9860-646665A3E97C/appyinxiangcom/21626718/ENResource/p55)]
添加完毕后,点击创建按钮,即可创建对应资源库


maven配置

在maven的setting.xml文件中,添加nexus3的登录名

<servers>
    <server>
        <id>docker</id>
        <username>admin</username>
        <password>XXXXXXXXX</password>
    </server>
</servers>

Docker配置

开放Docker 2375控制端口
## 编辑配置文件
vi /usr/lib/systemd/system/docker.service

## 修改 [Service]的ExecStart,增加 -H tcp://0.0.0.0:2375
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

## 刷新配置文件,重启docker
systemctl daemon-reload
systemctl restart docker

## 查看docker进程是否监听
netstat -ano | grep 2375

## 查看系统网络端口2375是否被docker所监听
netstat -tulp

## 添加防火墙2375/tcp ,并重载防火墙
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload
配置构件库访问IP授权
## 编辑配置文件
vi /etc/docker/daemon.json

## 添加参数
{
    "insecure-registries":["构件库IP:8082"]
}

## 保存配置重启Docker
systemctl daemon-reload
systemctl restart docker

项目配置

## 在pom.xml文件中添加打包相关配置

<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.2.2</version>
            <configuration>
                <dockerHost>http://构件库IP:2375</dockerHost>
                <serverId>docker</serverId>
                <imageName>构件库IP:8082/devops-center:latest</imageName>
                <baseImage>java</baseImage>
                <maintainer>quchao@bbrightway.com</maintainer>
                <cmd>["java", "-version"]</cmd>
                <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
                <forceTags>true</forceTags>
                <imageTags>
                    <imageTag>latest</imageTag>
                </imageTags>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

镜像打包

## 在项目根目录中执行以下命令
mvn clean package docker:build -DpushImage

执行完毕后,即可在nexus私库中找到对应项目


镜像使用

配置Docker私有库地址
## 编辑docker服务器配置文件
vi /etc/docker/daemon.json

## 添加以下参数
{
    "registry-mirrors": ["http://私有构件库IP:8081"]
}
下载Docker私有镜像
## 执行以下命令下载镜像
docker pull 私有构件库IP:8082/项目名:标签名
启动Docker

按照docker使用方式进行启动即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值