CICD - docker私有仓库

本文详细介绍如何使用Docker搭建私有仓库,包括创建、查看仓库,推送镜像至私有仓库,解决HTTPS推送错误,配置信任仓库及重启Docker服务。同时,展示了如何修改容器重启策略,并列举了常见镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、创建私有仓库

docker pull  registry
docker run -d -v /opt/registory:/var/lib/registory  -p 5000:5000 --restart=always --name registry registry

2、查看私有仓库

curl http://47.99.211.128:5000/v2/_catalog
# 域名解析后
curl http://hub.chenhailong.online/v2/_catalog
{"repositories":[]}

在这里插入图片描述
3、 将制作的镜像推到私有仓库

# 参考docker hub官网
docker push chenhailong666/test:tagname
  • 没成功
[root@iZbp1hun1qsl59e2nzqyvcZ ~]# docker push 47.99.211.128:5000/test:1.0
The push refers to repository [47.99.211.128:5000/test]
Get https://47.99.211.128:5000/v2/: http: server gave HTTP response to HTTPS client
[root@iZbp1hun1qsl59e2nzqyvcZ ~]# curl http://47.99.211.128:5000/v2/_catalog
{"repositories":[]} 
[root@iZbp1hun1qsl59e2nzqyvcZ ~]# 
  • 不加https, 授信
vi /etc/docker/daemon.json

# daemon.json
# 加入解析后的域名
{"insecure-registries":["47.99.211.128:5000","hub.chenhailong.online"]}
  • 记录已经在运行的容器
    在这里插入图片描述
  • 完成授信,重启docker
service docker restart
docker image ls
# ----------查看
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
47.99.211.128:5000/test              1.0                 b733ed3d34c8        3 days ago          675MB
chenhailong666/test                  1.0                 b733ed3d34c8        3 days ago          675MB
jenkinsci/blueocean                  latest              7959e11c0266        6 days ago          555MB
nginx                                latest              2bcb04bdb83f        4 weeks ago         109MB
registry                             latest              f32a97de94e1        7 weeks ago         25.8MB
mysql                                5.6                 96e41ac53eac        2 months ago        256MB
jenkins                              latest              cd14cecfdb3a        9 months ago        696MB
maven                                3-alpine            5435658a63ac        21 months ago       116MB
hub.c.163.com/wuxukun/maven-aliyun   3-jdk-8             676639454cb4        2 years ago         653MB

docker push 47.99.211.128:5000/test:1.0

在这里插入图片描述

  • 删除私有仓库镜像
    在这里插入图片描述
  • 将已有运行的docker容器改成 --restart=always
    • 将容器删除
    • 改成–restart=always
    • docker run --name=nginx -p 80:80 -v /app/nginx/www:/usr/share/nginx/html -v /app/nginx/conf.d:/etc/nginx/conf.d -d --restart=always nginx
      在这里插入图片描述

参考:
博文
视频链接

### Docker与CI/CD集成实践教程 #### 一、理解CI/CD概念及其重要性 在现代软件开发中,持续集成(CI)和持续交付(CD)是提高产品质量和服务稳定性的重要手段。CI指的是频繁地将代码变更合并到共享仓库,并自动化运行测试;而CD则是在此基础上进一步实现了应用程序的自动化部署过程[^2]。 #### 二、利用Docker简化环境一致性管理 为了确保不同环境中的一致性和可移植性,采用容器化技术如Docker来封装应用及其依赖项成为一种理想的选择。这使得开发者可以在本地创建与生产服务器相同的执行上下文,从而减少因环境差异引起的问题发生概率[^1]。 #### 三、结合Jenkins实现完整的CI/CD流水线 作为流行的开源自动化服务平台之一,Jenkins能够很好地支持多阶段管道定义,并与各种源码控制系统良好对接。当项目引入了Docker之后,则可以通过编写特定于项目的Pipeline脚本来完成从构建镜像直至推送至远程注册表的任务链路设置[^4]。 下面给出一段简单的 Jenkinsfile 示例用于展示如何配置基于 Git 触发事件启动整个工作流: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/user/repo.git' } } stage('Build Image') { steps{ script { docker.build "myapp:${env.BUILD_ID}" } } } stage('Run Tests'){ steps{ sh './run-tests.sh' } } stage('Push Image'){ steps{ withCredentials([usernamePassword(credentialsId: 'dockerhub', passwordVariable: 'PASS', usernameVariable: 'USER')]) { sh """ echo ${USER}:${PASS} | docker login --username=${USER} --password-stdin docker push myapp:${env.BUILD_ID} """ } } } } } ``` 此段 Groovy 脚本展示了四个主要操作环节:检出最新版本源码、编译生成新的 Docker 映像文件、执行单元测试验证功能正确性以及上传映像到公共或私有的存储库供后续使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值