docker私有镜像仓库搭建

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目它主要 提供 Dcoker Registry 管理UI,可基于角色访问控制, AD/LDAP 集成,日志审核等功能,完全的支持中文。Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。

Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目它主要 提供 Dcoker Registry 管理UI,可基于角色访问控制, AD/LDAP 集成,日志审核等功能,完全的支持中文。


Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。


Harbor具有如下特点:


基于角色的访问控制 - 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。


镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。


图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。


AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。


审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。


国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。


RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。


部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。



安装前准备


系统版本 centos7


安装docker


详情请看 基于容器安装运行Docker私有仓库及添加认证 ,具体命令如下:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

exclude=kube*


EOF


## Install prerequisites.


yum install -y yum-utils device-mapper-persistent-data lvm2


## Add docker repository.


##yum-config-manager -y --add-repo


yum-config-manager -y --add-repo


## Install docker.


yum makecache fast && yum -y install docker-ce-18.06.1.ce


## Create /etc/docker directory.


mkdir /etc/docker


# Setup daemon.


mkdir -p /etc/systemd/system/docker.service.d


# Restart docker.


systemctl daemon-reload

systemctl enable docker

systemctl restart docker

systemctl status docker

systemctl disable firewalld

systemctl stop firewalld


# Set SELinux in permissive mode (effectively disabling it)


# 将 SELinux 设置为 permissive 模式(将其禁用)

setenforce 0

sed -i 's/^SELINUX=.*$/SELINUX=permissive/' /etc/selinux/config

swapoff -a

修改docker启动文件


#vi /usr/lib/systemd/system/docker.service  修改为ExecStart=/usr/bin/dockerd --insecure-registry=192.168.163.139  ------------ip写自己的ip但是不要写127.0.0.1

安装docker-compose


# yum -y install epel-release

# yum -y install python-pip

#yum install -y docker-compose

# docker-compose -version


下载注册库镜像


#docker pull registry:2


安装harbor


#tar zxvf harbor-offline-installer-v1.5.0.tgz


#cd harbor


#sed -i "s/^hostname = reg.mydomain.com/hostname = 192.168.163.139/g" harbor.cfg


#./install.sh


注意将这个地方的IP改成自己机器的IP,不要使用localhost,127.0.0.1

安装成功后,如下:


Creating registry ... done

Creating harbor-ui ... done

Creating network "harbor_harbor" with the default driver

Creating nginx ... done

Creating harbor-db ...

Creating harbor-adminserver ...

Creating registry ...

Creating harbor-ui ...

Creating harbor-jobservice ...

Creating nginx ...

✔ ----Harbor has been installed and started successfully.----


Now you should be able to visit the admin portal at http://192.168.163.139.

For more details,


image.png

默认登录用户名密码:admin/Harbor12345


登陆后的见面如下:

image.png


下来我们是用docker login登录,如下:


image.png

这个地方输入的用户名密码是我们刚安装的Harbor的登录用户名密码


下面将我们构建的JDK和SpringBoot demo镜像push到我们搭建的私有仓库上

创建仓库


现在我们在浏览器管理端创建个项目,如下


image.png

确定后,下来我们再到终端命令行将image的名字修改为格式:userip/项目名/image名字:版本号


首先我们查看一下本地镜像:docker images


image.png

给要push到私有仓库的镜像打上tag:


docker tag zjf/springboot 192.168.163.139/spring/zjf/springboot

zjf/springboot是我们本地的镜像名称,


192.168.163.139是我们私有仓库服务的IP地址


spring是我们刚才建立的项目名称


然后docker images就可以看到我们的tag镜像


image.png

然后将刚才打上tag的镜像push到私有仓库上


docker push 192.168.163.139/spring/zjf/springboot


然后我们就可以在web界面看到我们的镜像文件了


image.png

image.png




相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。 &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
24天前
|
缓存 Linux 网络安全
docker的镜像无法下载如何解决?
【10月更文挑战第31天】docker的镜像无法下载如何解决?
963 29
|
20天前
|
存储 关系型数据库 Linux
【赵渝强老师】什么是Docker的镜像
Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。
|
26天前
|
存储 监控 Linux
docker构建镜像详解!!!
本文回顾了Docker的基本命令和管理技巧,包括容器和镜像的增删改查操作,容器的生命周期管理,以及如何通过端口映射和数据卷实现容器与宿主机之间的网络通信和数据持久化。文章还详细介绍了如何使用Docker部署一个简单的Web应用,并通过数据卷映射实现配置文件和日志的管理。最后,文章总结了如何制作自定义镜像,包括Nginx、Python3和CentOS镜像,以及如何制作私有云盘镜像。
114 2
|
27天前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
71 1
|
29天前
|
存储 Java 开发者
成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享
本文分享了如何通过 jlink 和 jdeps 工具将 Java 基础 Docker 镜像从 674MB 优化至 58MB 的经验。首先介绍了选择合适的基础镜像的重要性,然后详细讲解了使用 jlink 构建自定义 JRE 镜像的方法,并通过 jdeps 自动化模块依赖分析,最终实现了镜像的大幅缩减。此外,文章还提供了实用的 .dockerignore 文件技巧和选择安全、兼容的基础镜像的建议,帮助开发者提升镜像优化的效果。
|
1月前
|
存储 缓存 Java
Java应用瘦身记:Docker镜像从674MB优化至58MB的实践指南
【10月更文挑战第22天】 在容器化时代,Docker镜像的大小直接影响到应用的部署速度和运行效率。一个轻量级的Docker镜像可以减少存储成本、加快启动时间,并提高资源利用率。本文将分享如何将一个Java基础Docker镜像从674MB缩减到58MB的实践经验。
61 1
|
20天前
|
缓存 JavaScript 安全
深入理解Docker镜像构建过程
深入理解Docker镜像构建过程
56 0
|
3天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
3天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
24 6