栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 系统运维 > 运维 > Linux

docker-推送镜像到私服库

Linux 更新时间:发布时间: 百科书网 趣学号
docker-推送镜像到私服库
1. 模拟案例
【拉取一个ubuntu镜像】 ⇒ 【以ubuntu镜像创建容器,添加一个vim功能】  ⇒ 

【将添加vim功能的容器打成一个新镜像】 ⇒ 【拉取registry镜像,搭建本地docker-hub仓库】 ⇒ 

【将镜像推送到本地的docker-hub仓库】
2. 案例实现
  • 2.1 拉取一个ubuntu镜像

    • 搜索镜像
      docker search ubuntu --limit 5  # 查询ubuntu相关镜像
      
      结果:

    • 拉取并查看ubuntu镜像
      docker pull ubuntu  # 拉取ubuntu镜像
      docker images [镜像名] # 查看拉取的镜像,不加镜像名查看所有安装的镜像
      
      查看镜像:
  • 2.2 以ubuntu镜像创建容器,添加一个vim功能

    • 以交互模式在新终端运行ubuntu容器

      docker run -it --name my_ubuntu ubuntu /bin/bash
      

      结果:


    • 基础的ubuntu镜像只保留核心的功能,其他功能需要自己安装:

    • 安装vim

      apt update  # 更新的软件列表
      apt search  # 查找软件包命令
      apt install vim # 安装vim
      

      安装完成后就有vim功能了:再次执行 vim a.txt

  • 2.3 将添加vim功能的容器打成一个新镜像

    • ctry + p + q 不退出容器,回到主机

      docker ps  # 查看容器的状态
      

      结果:


    • 以运行的容器创建一个新镜像 -m=“描述信息” -a=“作者” 容器id 镜像名:版本

      docker commit -m="ubuntu add vim" -a="yyy" 7cf6d79c2de8 yyy/my_ubuntu:1.0.1
      

      结果:

  • 2.4 拉取registry镜像,搭建本地docker-hub仓库

    • 拉取并运行registry镜像

      docker pull registry # 拉取registry镜像
      docker run -d -p 5000:5000 -v /data/my_registry/:/tmp/registry --privileged=true registry 
      # -d 表示后台运行  -p 主机端口:docker端口(设置端口映射)
      # -v 主机目录:容器目录(volume 容器卷,作用是主机与容器指定位置实时同步备份)
      # --privileged=true 权限提升
      

      结果:


    • get请求查看仓库的镜像 http://主机ip地址:主机端口/v2/_catalog

      curl --get http://192.168.71:5000/v2/_catalog 
      

      查看本地仓库镜像(repositories数组内就表示存放的镜像,当前没有镜像):

  • 2.5 将镜像推送到本地的docker-hub仓库

    • 当前创建的镜像命名并不符合要上传仓库的命名规范,要先进行修改:

      docker tag yyy/my_ubuntu:1.0.1 192.168.71.129:5000/yyy/my_ubuntu:1.0.1
      # 打tag,相当于将镜像复制一份出来对名字和版本进行修改
      # 命名规范是 主机ip地址:端口/命名空间(有无都行)/镜像名:版本
      

      结果:


    • 尝试推送镜像到本地仓库:docker push 192.168.71.129:5000/yyy/my_ubuntu:1.0.1


      docker 默认不允许使用 http 的方式去推送镜像


    • 如果我们要使用http去推送的话,就需要配置(/etc/docker/daemon.json):


      查看发现只有配置了阿里云镜像加速的属性

      我们需要加一个 insecure-registries 属性,并将允许访问的 http 协议

      vim /etc/docker/daemon.json


      在 insecure-registries 属性值的数组中添加自己的 主机ip和端口,保存退出,重启docker,再进行推送:

      systemctl restart docker  # 重启docker
      # 创建 registry 容器,启用本地仓库服务ls
      docker run -d -p 5000:5000 -v /data/my_registry/:/tmp/registry --privileged=true registry
      docker push 本地镜像  # 推送镜像
      

      推送:

      查看本地仓库镜像:

      done!!!

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1050394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号