Docker第四篇 Docker仓库管理

Posted yangleitao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker第四篇 Docker仓库管理相关的知识,希望对你有一定的参考价值。

一、仓库概述

  • 仓库(Repository):仓库是集中存放镜像文件的场所,仓库分为公共仓库和私有仓库。
  • 注册服务器(Registry)和仓库区别:注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)

二、仓库管理

1、注册账号
https://hub.docker.com/ #在此页面注册账号,需要用户名,邮箱,密码(注:需要FQ才能注册,注册通过邮箱激活后可以通过网页登陆)
2、登陆docker hub
[email protected] ~]# docker login
#Login with your Docker ID to push and pull images from Docker Hub. If you dont have a Docker ID, head over to https://hub.docker.com to create one.
Username: *******      
Password: 
Login Succeeded
3、查找镜像   #可参考https://www.cnblogs.com/yangleitao/p/9683104.html
[[email protected] ~]# docker search centos #可以加上版本号
4、下载镜像
[[email protected] ~]# docker pull centos
5、上传镜像
#我们可以把自己的镜像传到docker hub官网上,前提是已经注册了账号
[[email protected] ~]# docker push image_name   

三、搭建私有仓库

1、使用registry镜像创建私有仓库
[[email protected] ~]# docker search registry
NAME                                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
registry                                The Docker Registry 2.0 implementation for s…   2216                [OK]                
[[email protected] ~]# docker pull registry   #直接下载镜像
[[email protected] ~]# docker images    #查看新下载的镜像

2、
[[email protected] ~]# mkdir -p /data/registry/   #创建一个本地目录,等一下挂载
[[email protected] ~]# 
[[email protected] ~]# docker run -d -p 5000:5000 -v /data/registry/:/tmp/registry registry
599c0e1a298f5e7a19b9ba01ff314c3e3a26a22b3cba1e6800e21ffb54c8e9d5
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
599c0e1a298f        registry            "/entrypoint.sh /etc…"   9 seconds ago       Up 7 seconds        0.0.0.0:5000->5000/tcp   vibrant_engelbart
17c54a92a4e8        ubuntu:latest       "/bin/bash"              6 days ago          Up 6 days                                    quizzical_bhabha
[[email protected] ~]#

-d : 后台运行

-p : 宿主机跟容器映射端口 SERVER_PORT:CONTAINER_PORT

-v : 挂载宿主机目录到容器中作为数据卷, docker registry上传镜像默认存放到容器/var/lib/registry,将本地/data/registry目录挂载到容器中,避免删除容器是数据丢失

3、管理私有仓库
[[email protected] ~]# docker run -d -p 5000:5000 registry 
19003703c71307603cdb48fab242c96dc34c0e37f0dcfe2e568658abbea40557
[[email protected] ~]# ps -aux|grep docker

[[email protected] ~]# docker push 192.168.19.130:5000/test
报如下错: 
The push refers to a repository [192.168.19.130:5000/test] 
Get https://192.168.19.130:5000/v1/_ping: dial tcp 192.168.19.130:5000: getsockopt: connection refused 
解决办法: 
a,执行 
    echo { "insecure-registries":["192.168.19.130:5000"] } >> /etc/docker/daemon.json   #或者直接修改配置文件
b, 重启docker client的docker 服务 

[[email protected] ~]# systemctl restart docker  #如果容器没有开启也会报错
[[email protected] ~]# docker push 192.168.19.130:5000/test1   #再次上传成功
The push refers to repository [192.168.19.130:5000/test1]
8d7ea83e3c62: Pushed 
6a061ee02432: Pushed 
f73b2816c52a: Pushed 
6267b420796f: Pushed 
a30b835850bf: Pushed 
latest: digest: sha256:a819482773d99bbbb570626b6101fa37cd93a678581ee564e89feae903c95f20 size: 1357

[[email protected] ~]# curl -XGET http://192.168.19.130:5000/v2/_catalog 
{"repositories":["test","test1"]}

[[email protected] ~]# curl -XGET http://192.168.19.130:5000/v2/test1/tags/list
{"name":"test1","tags":["latest"]}
[[email protected] ~]# 

 

以上是关于Docker第四篇 Docker仓库管理的主要内容,如果未能解决你的问题,请参考以下文章

第四篇:Docker安装并启动一个http容器

Docker第四篇Docker容器网络相关知识全解析

[第四篇]——Windows Docker 安装之Spring Cloud直播商城 b2b2c电子商务技术总结

跟我学习SpringCloud 教程第四篇:docker-feign配置-b2b2c小程序电子商务

第四章 使用Docker镜像和仓库

2018-09-08 第四十四十一次课