【云原生kubernetes从入门到实践系列教程 ] 三.docker 镜像仓库

基础教程

一.相关知识

今天来讲docker的第三个组成部分仓库(Registry)。仓库是用来保存用户创建的镜像,仓库分共有和私有两种。

  • 公有仓库
    Docker公司自己提供了最大的公有仓库docker hub,可以在Docker Hub上创建账户,保存分享自己创建的镜像,如下图所示。
    【云原生kubernetes从入门到实践系列教程 ] 三.docker 镜像仓库_第1张图片
  • 私有仓库
    可以部署在自己公司服务器,其原理性和gitlab相差无几,下面我们来进行私有仓库搭建实操
二.案例讲解
1. 创建镜像仓库

拉取私有仓库镜像文件registry ,并生成容器(Container),命令如下:

$ docker run -d -p 5000:5000 --restart always --name registry registry:2
  • docker run-- docker 命令
  • -p 5000:5000 -- 宿主机和容器的映射端口
  • --restart always -- 出错或重启物理机器后总是自动重启
  • --name registry -- 容器的名称
  • registry:2 -- 所需镜像及版本
    【云原生kubernetes从入门到实践系列教程 ] 三.docker 镜像仓库_第2张图片

到此,我们的私有镜像已经搭建完毕,非常简单。 此时,仓库只能本地访问,要想远程访问,接下来要做以下配置

2. 远程访问

所有安装docker的机器都要配置如下远程配置

$ vim /etc/docker/daemon.json

# docker 默认不允许向http推送,参考: https://docs.docker.com/registry/deploying/#run-an-externally-accessible-registry,
# 没有信任证书,通过配置daemon来跳过验证
{
 "registry-mirrors":[
        "https://8ov1n2lo.mirror.aliyuncs.com"
  ],
  "insecure-registries":[
  "192.168.1.152:5000"
  ]
}

重启docker 服务

$ systemctl restart docker
(1). 内存限制(选作,一般用不到)

如果想要控制容器的运行内存,在创建容器的时候可以添加以下选项

$ docker run --memory=500m nginx:alpine
(2). 安装界面(选作,一般用不到)
$ docker pull hyper/docker-registry-web
$ docker run -d --restart=always -p 5001:8080 --name registry-web --link registry -e REGISTRY_URL=http://192.168.1.152:5000/v2 -e REGISTRY_NAME=192.168.1.15:5000 hyper/docker-registry-web
3. 推送本地镜像到仓库中
(1). 给镜像打tag,并推送

我们以上个案例的nginx:v1 容器为例进行操作,推送到仓库可以是本地访问的镜像,亦可以是远程访问的镜像

  • 本机访问
$ docker tag nginx:alpine localhost:5000/nginx:v1
$ docker push localhost:5000/nginx:v1
  • 远程访问
$ docker tag nginx:alpine 192.168.1.152:5000/nginx:v1  # 打tag标签
$ docker push 192.168.1.152:5000/nginx:v1  #推送

【云原生kubernetes从入门到实践系列教程 ] 三.docker 镜像仓库_第3张图片

(2). 查看仓库内镜像元素是否存在
$ curl -X GET http://localhost:5000/v2/_catalog
$ curl -X GET http://localhost:5000/v2/nginx/tags/list

通过上面的命令可以看出,仓库已经存在“nginx”,v1的版本的镜像文件。
在这里插入图片描述

------------------------------------------------------------------------------------------------------

课程链接

docker基础操作

【云原生kubernetes从入门到实践 ] 一.docker安装
【云原生kubernetes从入门到实践 ] 二.docker操作

【云原生kubernetes从入门到实践 ] 三.docker私有镜像源

【云原生kubernetes从入门到实践 ] 四.docker volumes 持久化
【云原生kubernetes从入门到实践 ] 五.docker网络介绍
【云原生kubernetes从入门到实践 ] 六.docker应用容器实践

k8s 基础操作

【云原生kubernetes从入门到实践 ] 一.k8s 集群介绍
【云原生kubernetes从入门到实践 ] 二.k8s 集群理解
【云原生kubernetes从入门到实践 ] 三.k8s yaml编写即开发
【云原生kubernetes从入门到实践 ] 四.k8s deploy介绍
【云原生kubernetes从入门到实践 ] 五.k8s service访问
【云原生kubernetes从入门到实践 ] 六.k8s etcd数据库操作
【云原生kubernetes从入门到实践 ] 七.k8s 网络配置
【云原生kubernetes从入门到实践 ] 八.k8s 认证授权

k8s 运维监控

【云原生kubernetes从入门到实践 ] 一.k8s Rancher部署
【云原生kubernetes从入门到实践 ] 二.Prometheus监控
【云原生kubernetes从入门到实践 ] 三.k8s Grafana展示
【云原生kubernetes从入门到实践 ] 四.k8s Alertmanager告警

k8s Devops自动化部署

【云原生kubernetes从入门到实践 ] 一.k8s DevOps平台实践
【云原生kubernetes从入门到实践 ] 二.k8s Pipline流水线
【云原生kubernetes从入门到实践 ] 三.k8s 多分支流水线
【云原生kubernetes从入门到实践 ] 四.k8s Jenkins容器集成
【云原生kubernetes从入门到实践 ] 五.k8s SonarQube代码扫描
【云原生kubernetes从入门到实践 ] 六.k8s RobotFramework集成
【云原生kubernetes从入门到实践 ] 七.k8s SharedLibrary进行CICD
【云原生kubernetes从入门到实践 ] 八.k8s sharedLibrary集成K8S服务部署
【云原生kubernetes从入门到实践 ] 九.k8s 多环境部署

k8s 项目交付

【云原生kubernetes从入门到实践 ] 一.k8s Python Flask项目交付
【云原生kubernetes从入门到实践 ] 二.k8s Vue项目交付
【云原生kubernetes从入门到实践 ] 三.k8s Springcloud项目交付

你可能感兴趣的:(docker,kubernetes,云原生,k8s,教程)