热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Dockerdeepin系统下docker安装registry

环境说明一个坑逼的环境,也不能说坑逼,国产化的需求嘛。root@node22:registry#uname-aLinuxnode224.4.15-deepin-aere#137SM


环境说明

一个坑逼的环境,也不能说坑逼,国产化的需求嘛。

[email protected]:/registry# uname -a
Linux node22 4.4.15-deepin-aere #137 SMP Tue Dec 18 17:06:43 CST 2018 sw_64 GNU/Linux
[email protected]:/registry# lsb_release -a
No LSB modules are available.
Distributor ID: deepin
Description: deepin 15.2
Release: 15.2
Codename: kui

我直接安装了apt-get安装好了docker服务

根据深度官方提供的基础镜像安装好了一个基础镜像服务。

https://docs.deepin.cn/d/fbcc4fb4b6/ 这个是基础容器镜像

问题来了,在官方网站找不到sw_64架构的registry容器。

只能自己动手编译一个。


go环境部署

#使用基本镜像启动容器

docker run -it -d --name registry -p 4000:5000 deepin

#这时候发现一个问题,容器内不能安装包

#切换一下源文件不然安装软件包会有问题

docker cp /etc/apt/sources.list registry:/etc/apt

#同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

apt-get update

#安装go环境

apt-get install golang-go git make
mkdir -p $HOME/go/{bin,pkg,src}
#配置环境变量
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile

源码编译

#下载源码
cd $HOME/go/src
git clone https://github.com/docker/distribution.git
cd distribution
#安装依赖
go get
#配置容器镜像文件
mkdir -p /etc/docker/registry/
cp cmd/registry/config-dev.yml /etc/docker/registry/config.yml
mkdir -p /var/lib/registry
#编译
make PREFIX=$HOME/go clean binaries

#到此Docker Registry编译完成,下面进行测试


启动服务检测

#查看版本并运行

cd bin
./registry -v
./registry serve /etc/docker/registry/config.yml

访问本地5000端口,看到返回“200 OK”,则说明成功了
为了方便把启动命令改成脚本

[email protected]:~# more registry.sh
#!/bin/bash
../root/registry serve /etc/docker/registry/config.yml

#可以把这个做好的registry镜像commit一下

docker commit registry kolla/ubuntu-source-registry

 #配置一下服务随容器启动

[email protected]:/ljy/now# more Dockerfile
# Build a registry for deepin sw_64
FROM kolla/ubuntu-source-registry
CMD ["sh", "-c", "sh /root/registry.sh"]
docker build -t kolla/ubuntu-source-registry .

#使用镜像启动容器

docker run -it -d --name registry -p 4000:5000 -v /registry:/var/lib/registry kolla/ubuntu-source-registry

 



推荐阅读
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 在Linux系统中使用EncFS实现文件夹加密
    为了保护个人隐私或敏感数据不被未经授权的访问,可以通过加密技术来增强安全性。本文介绍如何在Linux系统上使用EncFS工具创建和管理加密文件夹,以确保即使在系统登录状态下,特定文件夹中的数据也保持加密状态。 ... [详细]
  • Linux内核中的内存反碎片技术解析
    本文深入探讨了Linux内核中实现的内存反碎片技术,包括其历史发展、关键概念如虚拟可移动区域以及具体的内存碎片整理策略。旨在为开发者提供全面的技术理解。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文详细介绍了如何在VSCode环境中配置Prettier工具以支持TypeScript项目,同时结合ESLint实现代码风格的一致性和自动化格式化。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统上安装中文宋体字体的方法,包括操作系统的环境配置、字体管理工具的安装、字体文件的传输与缓存重建等步骤。 ... [详细]
  • 使用 Babylon.js 实现地球模型与切片地图交互(第三部分)
    本文继续探讨在上一章节中构建的地球模型基础上,如何通过自定义的 `CameraEarthWheelControl` 类来实现更精细的地图缩放控制。我们将深入解析该类的实现细节,并展示其在实际项目中的应用。 ... [详细]
  • 本文探讨了在使用 MyBatis 进行批量数据处理时遇到的参数绑定异常问题,并提供了详细的解决方案。 ... [详细]
  • 我在尝试将组合框转换为具有自动完成功能时遇到了一个问题,即页面上的列表框也被转换成了自动完成下拉框,而不是保持原有的多选列表框形式。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 本文定期更新,涵盖虚拟化技术的基础知识、Xen虚拟机架构详解、KVM架构与原理、QEMU模拟器的功能及使用方法。同时,文章还探讨了不同虚拟化技术之间的比较与联系,以及如何利用这些技术进行网络配置和虚拟磁盘管理。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ... [详细]
  • 一、使用Microsoft.Office.Interop.Excel.DLL需要安装Office代码如下:2publicstaticboolExportExcel(S ... [详细]
author-avatar
J-cha0
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有