Docker 搭建私有仓库 && Jenkins自动化部署 JAVA
docker 就不一一介绍了!!网上太多介绍文章了,
docker 安装 ,请参考安装步骤连接
直接上干货。。。
第一台Centos-7机器安装 Docker & Jenkins IP 10.8.9.2
第二台Centos-7机器安装了Docker IP 10.8.9.3
搭建自己的私有仓库
docker pull registry #下载仓库镜像
docker images #查看镜像
docker run -d --name registry --net=host -p 10.8.9.2:5000:5000 -v /data/docker/registry/:/var/lib/registry registry
-d 后台运行
–name 给该容器起的新名字
–net 使用宿主机的 IP 地址
-p 端口映射
-v 持久化目录挂载路径 ( 前面是宿主机目录,后面是容器里的目录 )
docker ps -a #查看容器
此时容器已启动
我们 修改docker 文件
vim /etc/docker/daemon.json #该文件不存在的,需要自己新建
{
"registry-mirrors": ["http://hub-mirror.c.163.com"], #这是修改镜像源地址,
"insecure-registries": ["10.8.9.2:5000"], #这是我们搭建的私有仓库的地址
"graph": "/data/docker" #这是docker自定义保存的路径
}
重启docker
systemctl restart docker #重启docker
docker start registry #启动docker里的私有仓库容器
docker ps -a #查看是否启动成功
我们去下载一个镜像 进行测试
docker pull hello-world #下载 hello-world 镜像
docker images #查看镜像
我们先给 hello-world 镜像打个新的TAG
docker tag hello-world 10.8.9.2:5000/hello-world:v1 #请注意我写的格式
docker tag 的命令就不介绍了,自行百度很简单!!!
此时我们用 docker images 命令查看镜像 会出现一个新的镜像
docker images #查看镜像
10.8.9.2:5000/hello-world:v1
然后将刚打完TAG的镜像进行上传到我们刚搭建的私有仓库
docker images #查看镜像
docker push 10.8.9.2:5000/hello-world:v1 #上传到自己的藏库
我们可以去刚才启动的时候 映射的路径下查看该容器是否上传成功
cd /data/docker/registry/docker/registry/v2/repositories/
ll
hello-world #这是我们刚才上传的镜像文件
也可以通过 url 进行访问查看
http://10.8.9.2:5000/v2/_catalog #浏览器访问
curl http://10.8.9.2:5000/v2/_catalog #在终端进行 curl
{"repositories":["hello-world"]} #返回结果
有显示,说明我们上传成功
我们在把该镜像下载下来
docker rmi 10.8.9.2:5000/hello-world:v1 ##现将旧的镜像删除
docker images #查看镜像
docker pull 10.8.9.2:5000/hello-world:v1 ##下载刚才上传的镜像
docker images #查看镜像
接下来就是如何在另外一台服务器 pull 同一个镜像 10.8.9.3
操作很简单,只需要配置一个配置即可,客官,接着往下看!!!!!
如果正常的pull 此镜像肯定会报错
docker pull 10.8.9.2:5000/hello-world:v1
Error response from daemon: Get https://10.8.9.2:5000/v2/: http: server gave HTTP response to HTTPS client
你是不是也报错了??? 对吧!!!
看下面👇
vim /etc/docker/daemon.json #该文件不存在的,需要自己新建
{
"registry-mirrors": ["http://hub-mirror.c.163.com"], #这是修改镜像源地址,
"insecure-registries": ["10.8.9.2:5000"], #这是我们搭建的私有仓库的地址
"graph": "/data/docker" #这是docker自定义保存的路径
}
将此配置也同样的 写到 10.8.9.3 即可,,重启 docker
在进行 pull
docker pull 10.8.9.2:5000/hello-world:v1
v1: Pulling from hello
0e03bdcc26d7: Pull complete
Digest: sha256:90659bf80b44ce6be8234e6ff90a1ac34acbeb826903b02cfa0da11c82cbc042
Status: Downloaded newer image for 10.8.9.2:5000/hello-world:v1
10.8.9.2:5000/hello-world:v1
docker images #查看镜像
是不是成功了!!!!
如果你有第三台服务器 只需要修改 /etc/docker/daemon.json 文件即可 拉去同一个镜像
至于该文件的配置介绍,还是那句话,查百度,这世界上问题 没有百度解决不了的,如果解决不了,那么,恭喜你,不会的不是你一个人,还有成千上亿的人不会!!
下面开始 Docker && Jenkins 开始进行部署 点击进入第二篇