Docker>06 - 镜像的私有仓库

扯淡:

前面章节已经构建了自己的镜像,以及下拉镜像,我们在本机可以使用docker images 命令查看,但是在其他机器上就没有这个镜像了。解决这一问题,可以将镜像上传到官方Docker Hub 上,但公司中更多的是搭建自己的私有仓库来存放这些镜像,方便公司内所有的机器都可以拉取到。

个人学习总结:
链接:【springboot、springcloud、docker 等,学习目录】  

Docker Hub 仓库使用:


1、登录官网:https://hub.docker.com/

2、注册登录Docker Hub 账号。

3、点击“Create Repository”创建仓库。

4、docker push 命令推送镜像。

以上是基本步骤,由于速度很慢,并没有测试。

搭建私有仓库:


1、下拉官方提供的 registry 2.0 镜像。

2、docker run 创建容器。

# 命令
docker run -di --name my-registry -p 4000:5000 -v /docker_registry_volume:/var/lib/registry registry:2

注意:-v 指定了本机的数据卷,防止容器移除镜像丢失。-p 主机端口:容器端口

访问地址:http://ip:4000/v2/_catalog

3、修改镜像的tag

这里我上传redis镜像,size 相对较小一点。

# 命令
docker tag docker.io/redis ip:4000/test/redis:1.0

4、docker push 上传,错误提示

4.1、原因:若使用127.0.0.1 就没有问题,当我们使用外部的ip地址推送,是需要https证书支持的。

4.2、两种方式解决:

  • 修改 /etc/sysconfig/docker 使私有仓库的4000端口为非安全模式,即http模式。

  • 修改  vi  /etc/docker/daemon.json 让docker信任私有仓库地址。

{
        "registry-mirrors": ["https://t6e5x1bv.mirror.aliyuncs.com"],
        "insecure-registries":["私有仓库所在机器ip:端口"]
}

5、再次执行 docker push,成功上传。

结果:

6、私有仓库管理 API

接口地址:https://cloud.tencent.com/developer/article/1116799

7、从私有仓库下载镜像:

此处我使用虚拟机中的docker 拉取个人阿里云上的私有仓库镜像:

可以看到拉取到了私有仓库中的redis镜像。

总结:

1、为方便团队使用镜像,私有仓库在企业中非常重要。
2、私有仓库的安装使用 registry 2.0 版本,容器端口5000。版本较新。
3、要想使用私有仓库,需配置本机docker的私有仓库地址为信任地址。
4、私有仓库地址的信任配置是在需要使用私有仓库镜像的机器上配置,并不只是安装私有仓库的那台机器。
5、私有仓库的管理也非常重要,对照私有仓库 API 接口使用。


个人学习分享
更多 springboot、springcloud、docker 文章,关注微信公众号吧:

使用Spotify的`docker-maven-plugin`将Spring Boot项目打包成Docker镜像并推送至私有仓库,你需要在`pom.xml`文件中添加相应的Maven插件配置。首先,确保已经添加了`docker-maven-plugin`到项目的依赖中: ```xml <dependencies> <!-- 添加其他依赖 --> <dependency> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> </dependency> </dependencies> ``` 然后,在`build`标签下添加`docker-maven-plugin`配置,包括构建镜像、运行容器和推送镜像: ```xml <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!-- Dockerfile路径 --> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> <!-- 镜像名称和标签 --> <imageName>${project.artifactId}</imageName> <imageTag>${project.version}</imageTag> <!-- 私有仓库地址 --> <registryUrl>http://your-private-repo-url.com/v2/</registryUrl> <serverId>your-private-repo-id</serverId> <!-- 仓库的ID,通常是用户名或组织名 --> <!-- 登录信息,如果你的仓库需要认证 --> <username>your-docker-registry-username</username> <password>your-docker-registry-password</password> <!-- 构建选项 --> <buildArgs> <!-- 如果有额外的环境变量传递给镜像 --> <arg>VAR=value</arg> </buildArgs> <!-- 是否自动登录 --> <autoLogin>true</autoLogin> <!-- 其他插件配置 --> <executions> <execution> <!-- 这里定义镜像构建和推送操作 --> <phase>package</phase> <!-- 执行阶段,通常在deploy前 --> <goals> <goal>build</goal> <goal>push</goal> </goals> </execution> </executions> </configuration> </plugin> </plugins> </build> ``` 别忘了替换上述示例中的`your-private-repo-url.com`, `your-private-repo-id`, `your-docker-registry-username`以及`your-docker-registry-password`为你实际的私有仓库URL和凭据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值