最近又发现了一款好用的Maven插件,fabric8io出品的
docker-maven-plugin
,可以把SpringBoot应用方便的部署到Docker容器中去。该插件可以实现打包镜像、推送到镜像仓库、运行应用等一系列操作,本文将对其用法进行详细介绍,希望对大家有所帮助!
安装私有镜像仓库
由于之后我们需要推送到私有镜像仓库,我们预先安装好,使用的是Docker公司开发的私有镜像仓库Registry。
下载Registry的Docker镜像;
docker pull registry:2
使用Docker容器运行Registry服务,需要添加环境变量
REGISTRY_STORAGE_DELETE_ENABLED=true
开启删除镜像的功能;
docker run -p 5000:5000 --name registry2 \
--restart=always \
-e REGISTRY_STORAGE_DELETE_ENABLED="true" \
-d registry:2
修改Docker Daemon的配置文件,文件位置为
/etc/docker/daemon.json
,由于Docker默认使用HTTPS推送镜像,而我们的镜像仓库没有支持,所以需要添加如下配置,改为使用HTTP推送;
{
"insecure-registries": ["192.168.3.101:5000"]
}
原先:
{"registry-mirrors": ["https://cr.console.aliyun.com"]}
最后使用如下命令重启Docker服务。
systemctl daemon-reload && systemctl restart docker
镜像仓库可视化
由于私有镜像仓库管理比较麻烦,而
docker-registry-ui
有专门的页面可以方便地管理镜像,所以我们安装它来管理私有镜像仓库。
下载
docker-registry-ui
的Docker镜像;
docker pull joxit/docker-registry-ui:static
使用Docker容器运行
docker-registry-ui
服务;
docker run -p 8280:80 --name registry-ui \
--link registry2:registry2 \
-e REGISTRY_URL="http://registry2:5000" \
-e DELETE_IMAGES="true" \
-e REGISTRY_TITLE="Registry2" \
-d joxit/docker-registry-ui:static
我们先来试试私有镜像仓库是否可用,首先下载一个测试用的镜像
busybox
;修改本地配置
{
"experimental": true,
"features": {
"buildkit": true
},
"insecure-registries": [
"101.43.162.5:5000"
],
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
}
docker pull busybox
给镜像
busybox
打上私有仓库的标签,并设置版本为v1.0
;
docker tag busybox 192.168.3.101:5000/busybox:v1.0
之后推送到私有镜像仓库去;
docker push 192.168.3.101:5000/busybox:v1.0
访问
docker-registry-ui
管理界面,即可查看到busybox
镜像,地址:http://192.168.3.101:8280