本教程将一个标准的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使用方式进行启动即可
版权声明:本文为qq_33276578原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。