linux学习-docker学习之私有registry(代码片段)

丢爸 丢爸     2023-01-17     362

关键词:

启动构建私有Registry
#--restart=always参数表示在docker服务重新启动时自动启动此容器
[root@docker ~]# docker run -d -p 5000:5000 --restart=always -v /opt/registry:/var/lib/registry registry
[root@docker ~]# docker image ls
REPOSITORY           TAG       IMAGE ID       CREATED        SIZE
registry             latest    b2cb11db9d3d   7 weeks ago    26.2MB
nginx                1.14      295c7be07902   2 years ago    109MB
ubuntu               15.10     9b9cb95443b5   5 years ago    137MB
修改配置文件
#修改docker的配置文件,添加insecure-registries
[root@docker ~]# vim /etc/docker/daemon.json

  "registry-mirrors" : [
  "https://registry.docker-cn.com",
  "https://docker.mirrors.ustc.edu.cn",
  "http://hub-mirror.c.163.com",
  "https://cr.console.aliyun.com/"],
  "insecure-registries":["192.168.88.101:5000"],
  #docker启动时,自动启动容器
  "live-restore":true

#重新启动Docker
[root@docker ~]# systemctl restart docker
上传镜像至本地仓库
#1.镜像上传至仓库需要对上传的镜像名称进行更改[镜像格式:registry仓库地址:端口/项目名称/镜像名称]
[root@docker ~]# docker image tag nginx 192.168.88.101:5000/tye/nginx:v1
[root@docker ~]# docker image ls
REPOSITORY                      TAG       IMAGE ID       CREATED        SIZE
192.168.88.101:5000/tye/nginx   v1        87a94228f133   8 days ago     133MB
nginx                           latest    87a94228f133   8 days ago     133MB
registry                        latest    b2cb11db9d3d   7 weeks ago    26.2MB
nginx                           1.14      295c7be07902   2 years ago    109MB
ubuntu                          15.10     9b9cb95443b5   5 years ago    137MB
#2.上传至本地仓库
[root@docker ~]# docker image push 192.168.88.101:5000/tye/nginx:v1
克隆一台docker的虚拟机(docker2)来测试私有Registry
#清空docker2上所有的容器和镜像
[root@docker2 ~]# docker container rm -f `docker container ls -aq`
[root@docker2 ~]# docker image rm -f `docker image ls -aq`
#查看docker2主机的配置文件
[root@docker ~]# vim /etc/docker/daemon.json

  "registry-mirrors" : [
  "https://registry.docker-cn.com",
  "https://docker.mirrors.ustc.edu.cn",
  "http://hub-mirror.c.163.com",
  "https://cr.console.aliyun.com/"],
  "insecure-registries":["192.168.88.101:5000"]

#测试从docker1配置的本地registry中pull镜像到docker2主机上
[root@docker2 ~]# docker image pull 192.168.88.101:5000/tye/nginx:v1
v1: Pulling from tye/nginx
b380bbd43752: Pull complete 
fca7e12d1754: Pull complete 
745ab57616cb: Pull complete 
a4723e260b6f: Pull complete 
1c84ebdff681: Pull complete 
858292fd2e56: Pull complete 
Digest: sha256:7250923ba3543110040462388756ef099331822c6172a050b12c7a38361ea46f
Status: Downloaded newer image for 192.168.88.101:5000/tye/nginx:v1
192.168.88.101:5000/tye/nginx:v1
[root@docker2 ~]# docker image ls
REPOSITORY                      TAG       IMAGE ID       CREATED      SIZE
192.168.88.101:5000/tye/nginx   v1        87a94228f133   8 days ago   133MB
#pull之后同docker1本地仓库中的Image对比一下Image ID,相同表示pull镜像成功
上传第二个镜像至本地Registry
#1.打标签
[root@docker1 ~]# docker tag tye/centos_lamp:v2 192.168.88.101:5000/tye/centos_lamp:v1
#2.上传
[root@docker1 ~]# docker image push 192.168.88.101:5000/tye/centos_lamp:v1
在docker2上测试pull上传的镜像
[root@docker2 ~]# docker image pull 192.168.88.101:5000/tye/centos_lamp:v1
v1: Pulling from tye/centos_lamp
06a11a3d840d: Pull complete 
d889787eb63d: Pull complete 
ad1e076aaac9: Pull complete 
Digest: sha256:234565aeed6e953444dcc0226a06398b02caf6c962ea2581e9a0a7c808423f94
Status: Downloaded newer image for 192.168.88.101:5000/tye/centos_lamp:v1
192.168.88.101:5000/tye/centos_lamp:v1
[root@docker2 ~]# docker image ls
REPOSITORY                            TAG       IMAGE ID       CREATED        SIZE
192.168.88.101:5000/tye/centos_lamp   v1        cec4d57d1f5a   47 hours ago   440MB
192.168.88.101:5000/tye/nginx         v1        87a94228f133   8 days ago     133MB
本地仓库添加安全认证
生成密码(docker1)
[root@docker1 ~]# yum install -y httpd-tools
[root@docker1 ~]# mkdir -p /opt/registry-auth
[root@docker1 ~]# htpasswd -Bbn tye 123 >/opt/registry-auth/htpasswd
[root@docker1 ~]# cat /opt/registry-auth/htpasswd
tye:$2y$05$6LHld5TIci8Ws39YxXtcfuey6aS84M7nLnyUFZw.1JSDyXJMvdj7W
重新启动带有密钥功能的registry容器
#删除历史容器
[root@docker1 ~]# docker container rm -f `docker container ls -aq`
d48e73e11323
#启动带有密钥的registry容器
[root@docker1 ~]# docker container run -d -p 5000:5000 -v /opt/registry-auth/:/auth/ -v /opt/registry:/var/lib/registry -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry
6195b439bb80f7aac9dc7ce819991cb1709cec33420a67d3105bffe50e20dd4d
测试push镜像
#测试上传镜像,提示需要认证
[root@docker1 ~]# docker image tag centos:7 192.168.88.101:5000/tye/centos:v1
[root@docker1 ~]# docker image push 192.168.88.101:5000/tye/centos:v1
The push refers to repository [192.168.88.101:5000/tye/centos]
174f56854903: Preparing 
no basic auth credentials
#进行登录认证
[root@docker1 ~]# docker login 192.168.88.101:5000
Username: tye
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
#重新上传镜像
[root@docker1 ~]# docker image push 192.168.88.101:5000/tye/centos:v1
The push refers to repository [192.168.88.101:5000/tye/centos]
174f56854903: Pushed 
v1: digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f size: 529
在docker2上测试pull镜像
#没有认证前,pull提示需要认证
[root@docker2 ~]# docker image pull 192.168.88.101:5000/tye/centos:v1
Error response from daemon: Head "http://192.168.88.101:5000/v2/tye/centos/manifests/v1": no basic auth credentials
#登录认证
[root@docker2 ~]# docker login 192.168.88.101:5000
Username: tye
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@docker2 ~]# docker image pull 192.168.88.101:5000/tye/centos:v1
v1: Pulling from tye/centos
2d473b07cdd5: Pull complete 
Digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f
Status: Downloaded newer image for 192.168.88.101:5000/tye/centos:v1
192.168.88.101:5000/tye/centos:v1
图形化的本地Registry(Habor)
#安装habor依赖--docker-compose
[root@docker1 ~]# yum install -y docker-compose
#下载Harbor安装包
[github下载链接-Habor](https://github.com/goharbor/harbor/releases)
[Habor下载链接](https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.6.1.tgz)
#上传habor文件至/opt目录
[root@docker1 opt]# ll -h
total 628M
drwx--x--x 4 root root   28 Oct 15 21:07 containerd
drwxr-xr-x 5 root root   54 Oct 20 11:18 dockerfile
-rw-r--r-- 1 root root 628M Oct 20 20:56 harbor-offline-installer-v1.6.1.tgz
#解压文件
[root@docker1 opt]# tar xf harbor-offline-installer-v1.6.1.tgz 
#修改habor目录下的habor.cfg配置文件
[root@docker1 opt]# cd harbor
[root@docker1 harbor]# vim harbor.cfg
hostname = 192.168.88.101
habor_admin_password = 123456
#执行install.sh
[root@docker1 harbor]# ./install.sh
#Habor安装完成后,会启动以下容器
[root@docker1 harbor]# docker container ls
CONTAINER ID   IMAGE                                    COMMAND                  CREATED          STATUS                    PORTS                                                                                                                 NAMES
9fe1def580b2   goharbor/harbor-jobservice:v1.6.1        "/harbor/start.sh"       42 seconds ago   Up 42 seconds                                                                                                                                   harbor-jobservice
4e9896a8ae49   goharbor/nginx-photon:v1.6.1             "nginx -g 'daemon of…"   42 seconds ago   Up 42 seconds (healthy)   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:4443->4443/tcp, :::4443->4443/tcp   nginx
2bb58580368e   goharbor/harbor-ui:v1.6.1                "/harbor/start.sh"       43 seconds ago   Up 42 seconds (healthy)                                                                                                                         harbor-ui
a0de841f970e   goharbor/harbor-db:v1.6.1                "/entrypoint.sh post…"   43 seconds ago   Up 42 seconds (healthy)   5432/tcp                                                                                                              harbor-db
54068fa00170   goharbor/registry-photon:v2.6.2-v1.6.1   "/entrypoint.sh /etc…"   43 seconds ago   Up 42 seconds (healthy)   5000/tcp                                                                                                              registry
d2fb28f1a0a9   goharbor/harbor-adminserver:v1.6.1       "/harbor/start.sh"       43 seconds ago   Up 38 seconds (healthy)                                                                                                                         harbor-adminserver
a21f64d69629   goharbor/redis-photon:v1.6.1             "docker-entrypoint.s…"   43 seconds ago   Up 43 seconds             6379/tcp                                                                                                              redis
14c81ab376e9   goharbor/harbor-log:v1.6.1               "/bin/sh -c /usr/loc…"   44 seconds ago   Up 43 seconds (healthy)   127.0.0.1:1514->10514/tcp                                                                                             harbor-log
通过Opera浏览器打开网页访问Habor(使用admin用户和habor.cf中配置的密码(habor_admin_password = 123456)登录即可)

登录成功后出现以下页面

linux学习-docker学习之数据卷(代码片段)

Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,... 查看详情

linux快速入门打开你的学习之道

相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢?首先,希望大家弄清楚自己为什么要学习Linux,有的人是因为兴趣,有的人是因为Linux比较好找工... 查看详情

linux学习-kubernetes学习之kubectl命令(代码片段)

kubernetes版本1.22.3问题1:Errorfromserver:Get"https://192.168.88.103:10250/containerLogs/default/client/client":dialtcp192.168.88.103:10250:connect:noroutetohost解决方法#经查看因为192.168.88.103上面fi 查看详情

docker学习之数据管理

Docker数据管理如何在Docker内部以及容器之间管理数据,在容器中管理数据主要有两种方式:数据卷(Volumes)挂载主机目录(Bindmounts)数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:数据... 查看详情

docker学习之docker-compose(代码片段)

docker-compose安装1.Mac/Windows:安装docker的时候附带安装了。2.Linux:curlhttps://github.com/docker/composeLinux安装docker-composecurl-Lhttps://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname-s)-$(uname-m)>/usr/local/bin/docker-compose直接将对应平台的... 查看详情

docker学习之docker容器基本使用

Docker学习之Docker容器基本使用新建容器并启动命令格式:dockerrun--optionsrepository:tag后台运行命令格式:-d已存在的容器相关操作启动:dockercontainerstartcontainerid停止:dockercontainerstopcontainerid重启:dockercontainerrestartcontainerid查看后台... 查看详情

docker学习之初识container

查看详情

驱动学习之register_chrdev_region函数和cdev结构体

1:register_chrdev_regionint register_chrdev_region(dev_t from, unsigned count, const char *name){    struct char_device_struct *cd;&nbs 查看详情

linux学习-kubernetes学习之kubernetes安装部署(代码片段)

基于Centos7.5下kubeadm安装和部署kubernetes使用三台虚拟机进行部署(一台master,两台node)虚拟机IPmaster:192.168.88.101node1:192.168.88.102node2:192.168.88.103修改/etc/hosts配置#在三台虚拟机的/etc/hosts文件中添加主机名解析192.168.8 查看详情

python3-学习之linux极简教程(学习准备)(代码片段)

前言:此篇文章是为Python学习做铺垫,主要学习内容:01.操作系统历史概述02.购买和连接云服务器03.Bash和Linux命令04.获取命令的帮助05.文件操作相关命令-106.文件操作相关命令-207.使用包管理工具安装软件08.配置阿里云防火... 查看详情

html5学习之浏览器的私有前缀

浏览器的私有前缀是为了兼容老版本的写法比较新版本的浏览器无需添加1.私有前缀-moz-:代表firefox(火狐)浏览器的私有属性-ms-:代表IE浏览器的私有属性-webkit-:代表safarichrome私有属性-o-:代表opera(欧朋)浏览器私有属性2.提倡写法一... 查看详情

docker学习之-什么是docker

docker是一个用来装应用的容器,就想杯子可以装水,笔筒可以装笔,书包可以放书一样,可以把网站放到docker里,可以把任何应用放到docker里。  查看详情

docker学习之仓库

仓库Repository是集中存放镜像的地方。Docker官方目前维护公共仓库叫dockerhub,可以在https://cloud.docker.com免费注册账号;DockerHub登录执行命令dockerlogin 交互式输入用户名密码登录dockerhub退出登录dockerlogout拉取镜像pulldockersearch<NAME&g... 查看详情

从零入门机器学习之linux系统详解

...。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过... 查看详情

从零入门机器学习之linux系统详解

...。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过... 查看详情

docker学习之镜像

Docker运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker会从镜像仓库下载该镜像。获取镜像#dockerpullubuntu:16.04运行#dockerrun-itubuntu:16.04bash-i交互式操作-t建立终端bash进入交互式shell[email protected]:/# iduid=0(root... 查看详情

spispi学习之spi驱动相关(代码片段)

关联内容:【SPI】SPI学习之SPI硬件相关【SPI】SPI学习之SPI驱动相关【SPI】SPI学习之SPI调试相关目录spi驱动框架SPI控制器spi_master结构体spi主机设备类spi_register_master函数spi_unregister_master函数SPI核心spi_transfer 结构体spi_message结构... 查看详情

docker学习之--日常命令

1、查看镜像sudodockerimages  sudopulldocker.io#下载镜像  sudopushdocker.io#上传镜像  sudodocker save -o centos_with_net.tar  镜像Id#把一个镜像保存在本地  sudodocker load <centos_with_net. 查看详情