搭建Docker私有镜像仓库

一、Docker镜像和容器的区别

Docker的整个生命周期由三部分组成:镜像(image)+容器(container)+仓库(repository)

容器等于镜像加上可读层,容器是由镜像实例化而来的。简单来说,镜像是文件,容器是进程,容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件

二、搭建Docker私有镜像仓库

通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用。显然,这在某些场景下是不适用的,比如企业级别的隐私项目,又或者是公司完全处于内网状态不能访问外网,再或者是想个性化定制某些配置等等,这时就需要用到私有存储库了

注意:私有存储库是基于docker hub在线存储库的registry镜像搭建的

1、docker hub在线存储库拉取registry镜像

docker pull registry

2、创建帐号密码文件夹

cd /opt/
mkdir auth
cd /auth/

3、写入帐号密码,生成帐号密码文件

echo "user:test passwd:123456" >htpasswd

4、加密帐号密码文件

docker run --entrypoint htpasswd registry:latest -Bbn test 123456 >auth/htpasswd

 5、启动registry容器,默认端口5000映射到5000

docker run  -d -p 5000:5000 --restart=always --name registry \

部分参数说明:

  • -d:让容器在后台运行
  • -p:指定容器内部使用的网络端口映射到我们使用的主机上
  • --name:指定容器创建的名称

6、配置私有仓库地址

vim /etc/docker/daemon.json

添加以下配置

{
    "insecure-registries": ["私有仓库IP:5000"]
}

7、重启docker

systemctl restart docker

浏览器访问http://私有仓库IP:5000/v2/_catalog

如果访问不到,尝试关闭防火墙

systemctl stop firewalld

如果还是访问不不到,可以重启一下docker

sudo systemctl restart docker

然后重新运行一下registry容器

docker restart registry容器ID 

8、登录私有仓库

docker login 私有仓库IP:5000

9、验证上传镜像到私有仓库

docker hub在线存储库拉取hello-world镜像

docker pull hello-world

标记hello-world该镜像需要推送到私有仓库

docker tag hello-world:latest 私有仓库IP:5000/hello-world:latest

通过push指令推送到私有仓库

docker push 私有仓库IP:5000/hello-world:latest

10、验证从私有仓库下载镜像

格式如下

docker pull 私有仓库IP:5000/镜像名称:镜像版本号

以hello-world为例

docker pull 私有仓库IP:5000/hello-world

三、JAVA项目中配置Docker私有仓库

在pom.xml文件的properties节点里添加以下配置

<docker.namespace>项目名称</docker.namespace>
<docker.repository.addr>私有仓库IP:5000</docker.repository.addr>
<docker.plugin.version>1.4.13</docker.plugin.version>
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z.haoui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值