今天来讲docker的第三个组成部分仓库(Registry)。仓库是用来保存用户创建的镜像,仓库分共有和私有两种。
拉取私有仓库镜像文件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 -- 所需镜像及版本
到此,我们的私有镜像已经搭建完毕,非常简单。 此时,仓库只能本地访问,要想远程访问,接下来要做以下配置
所有安装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
如果想要控制容器的运行内存,在创建容器的时候可以添加以下选项
$ docker run --memory=500m nginx:alpine
$ 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
我们以上个案例的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 #推送
$ curl -X GET http://localhost:5000/v2/_catalog
$ curl -X GET http://localhost:5000/v2/nginx/tags/list
通过上面的命令可以看出,仓库已经存在“nginx”,v1的版本的镜像文件。
【云原生kubernetes从入门到实践 ] 一.docker安装
【云原生kubernetes从入门到实践 ] 二.docker操作
【云原生kubernetes从入门到实践 ] 四.docker volumes 持久化
【云原生kubernetes从入门到实践 ] 五.docker网络介绍
【云原生kubernetes从入门到实践 ] 六.docker应用容器实践
【云原生kubernetes从入门到实践 ] 一.k8s 集群介绍
【云原生kubernetes从入门到实践 ] 二.k8s 集群理解
【云原生kubernetes从入门到实践 ] 三.k8s yaml编写即开发
【云原生kubernetes从入门到实践 ] 四.k8s deploy介绍
【云原生kubernetes从入门到实践 ] 五.k8s service访问
【云原生kubernetes从入门到实践 ] 六.k8s etcd数据库操作
【云原生kubernetes从入门到实践 ] 七.k8s 网络配置
【云原生kubernetes从入门到实践 ] 八.k8s 认证授权
【云原生kubernetes从入门到实践 ] 一.k8s Rancher部署
【云原生kubernetes从入门到实践 ] 二.Prometheus监控
【云原生kubernetes从入门到实践 ] 三.k8s Grafana展示
【云原生kubernetes从入门到实践 ] 四.k8s Alertmanager告警
【云原生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 多环境部署
【云原生kubernetes从入门到实践 ] 一.k8s Python Flask项目交付
【云原生kubernetes从入门到实践 ] 二.k8s Vue项目交付
【云原生kubernetes从入门到实践 ] 三.k8s Springcloud项目交付