精华内容
下载资源
问答
  • Docker本地仓库

    2019-05-30 12:08:41
    创建本地仓库 Docker 官方已经把仓库封装为镜像,直接通过启动容器就可以部署完成仓库 [root@server1 ~]# docker load -i registry2.tar [root@server1 ~]# docker images registry [root@server1 ~]# docker run -d ...
    创建本地仓库

    Docker 官方已经把仓库封装为镜像,直接通过启动容器就可以部署完成仓库

    [root@server1 ~]# docker load -i registry2.tar
    [root@server1 ~]# docker images registry
    [root@server1 ~]# docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry:2
    [root@server1 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    2a5ededc0ac0        registry:2          "/entrypoint.sh /etc…"   7 seconds ago       Up 5 seconds        0.0.0.0:5000->5000/tcp   registry
    

    在这里插入图片描述
    在这里插入图片描述
    上传本地镜像到本地仓库

    [root@server1 ~]# docker tag ubuntu:v1 localhost:5000/ubuntu				##重命名,使上传的时候传到本地仓库而不是默认仓库
    
    [root@server1 ~]# docker images localhost:5000/ubuntu
    REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
    localhost:5000/ubuntu   latest              aa00ef2f4ef4        36 hours ago        188MB
    
    [root@server1 ~]# docker push localhost:5000/ubuntu						##上传
    The push refers to repository [localhost:5000/ubuntu]
    d6eec047ed97: Pushed 
    5f70bf18a086: Pushed 
    11083b444c90: Pushed 
    9468150a390c: Pushed 
    56abdd66ba31: Pushed 
    latest: digest: sha256:a5a2cfc712a616319f3e71e716f534c373b8cef1a8ec864cc15c2176ae17d507 size: 1358
    

    查看

    [root@server1 ~]# cd /opt/registry/
    [root@server1 registry]# ls
    docker
    [root@server1 v2]# yum install -y tree
    [root@server1 registry]# tree docker
    

    在这里插入图片描述

    从本地仓库下载镜像

    [root@server1 ~]# docker rmi -f ubuntu:v1
    [root@server1 ~]# docker rmi -f localhost:5000/ubuntu
    [root@server1 ~]# docker pull localhost:5000/ubuntu
    [root@server1 ~]# docker tag localhost:5000/ubuntu ubuntu:v1
    [root@server1 ~]# docker rmi localhost:5000/ubuntu
    [root@server1 ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              v1                  aa00ef2f4ef4        37 hours ago        188MB
    registry            2                   f32a97de94e1        2 months ago        25.8MB
    game2048            latest              19299002fdbe        2 years ago         55.5MB
    ubuntu              latest              07c86167cdc4        3 years ago         188MB
    rhel7               latest              0a3eb3fde7fd        4 years ago         140MB
    
    加密上传

    1.创建服务端key以及证书

    [root@server1 ~]# cd /tmp/docker/
    [root@server1 docker]# mkdir -p certs
    [root@server1 docker]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/dzh.org.key -x509 -days 365 -out certs/dzh.org.crt
    [root@server1 docker]# cd certs/
    [root@server1 certs]# ls
    dzh.org.crt  dzh.org.key
    

    在这里插入图片描述

    在这里插入图片描述
    2.添加本地解析

    [root@server1 certs]# vim /etc/hosts
    172.25.68.1 server1 dzh.org
    

    3.创建仓库

    [root@server1 docker]# docker rm -f registry
    [root@server1 docker]# docker run -d --restart=always --name registry -v /tmp/docker/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/dzh.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/dzh.org.key -p 443:443 -v /opt/registry:/var/lib/registry registry:2
    
    [root@server1 dzh.org]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
    4ae71b182aef        registry:2          "/entrypoint.sh /etc…"   11 minutes ago      Up 11 minutes       0.0.0.0:443->443/tcp, 5000/tcp   registry
    

    4.创建证书存放目录,并复制证书

    [root@server1 docker]# cd /etc/docker/
    [root@server1 docker]# ls
    key.json
    [root@server1 docker]# mkdir certs.d
    [root@server1 docker]# cd certs.d/
    [root@server1 certs.d]# mkdir dzh.org
    [root@server1 certs.d]# cd dzh.org/
    [root@server1 dzh.org]# cp /tmp/docker/certs/dzh.org.crt ca.crt
    

    5.导入一个镜像并上传到私有仓库

    [root@server1 dzh.org]# docker tag game2048:latest dzh.org/game2048
    [root@server1 dzh.org]# docker push dzh.org/game2048
    

    6.查看

    [root@server1 dzh.org]# cd /opt/registry/
    [root@server1 registry]# tree docker/
    

    在这里插入图片描述
    测试:
    server2

    [root@server2 docker]# systemctl start docker
    [root@server2 docker]# cd /etc/docker
    [root@server2 docker]# mkdir certs.d
    [root@server2 docker]# cd certs.d/
    [root@server2 certs.d]# mkdir dzh.org
    
    [root@server2 certs.d]# vim /etc/hosts
    172.25.68.1 server1 dzh.org
    
    [root@server2 certs.d]# docker pull dzh.org/game2048
    Using default tag: latest
    Error response from daemon: Get https://dzh.org/v2/: x509: certificate signed by unknown authority  ##没有证书下载不了
    

    在这里插入图片描述

    server1将证书传给server2

    [root@server1 ~]# cd /etc/docker/certs.d/dzh.org/
    [root@server1 dzh.org]# ls
    ca.crt
    [root@server1 dzh.org]# scp ca.crt server2:/etc/docker/certs.d/dzh.org/
    The authenticity of host 'server2 (172.25.68.2)' can't be established.
    ECDSA key fingerprint is 22:48:a0:a7:b9:8f:b5:0c:31:fe:e9:9d:6c:59:61:d7.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'server2' (ECDSA) to the list of known hosts.
    root@server2's password: 
    ca.crt 
    

    server2

    [root@server2 certs.d]# docker pull dzh.org/game2048
    Using default tag: latest
    latest: Pulling from game2048
    534e72e7cedc: Pull complete 
    f62e2f6dfeef: Pull complete 
    fe7db6293242: Pull complete 
    3f120f6a2bf8: Pull complete 
    4ba4e6930ea5: Pull complete 
    Digest: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390
    Status: Downloaded newer image for dzh.org/game2048:latest
    
    [root@server2 certs.d]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    dzh.org/game2048    latest              19299002fdbe        2 years ago         55.5MB
    
    设置用户认证

    控制registry的使用权限,使其只有在登录用户名和密码之后才能使用

    1.设置用户密码并查看

    [root@server1 dzh.org]# cd /tmp/docker/
    [root@server1 docker]# mkdir auth
    [root@server1 docker]# docker run --rm --entrypoint htpasswd registry:2 -Bbn dzh redhat > auth/htpasswd
    [root@server1 docker]# cat auth/htpasswd 
    dzh:$2y$05$Ll6rx9QTt355NVo.ZBb7OOMFyLbOSyvUfsm0h6/SYT95sisekSgDm
    

    2.创建仓库

    [root@server1 docker]# docker rm -f registry
    [root@server1 docker]# docker run -d --restart=always --name registry -v /tmp/docker/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/dzh.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/dzh.org.key -p 443:443 -v /opt/registry:/var/lib/registry -v /tmp/docker/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry:2
    [root@server1 docker]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
    aea2930811bf        registry:2          "/entrypoint.sh /etc…"   5 seconds ago       Up 4 seconds        0.0.0.0:443->443/tcp, 5000/tcp   registry
    

    3.登录库,并输入用户名和密码

    [root@server1 docker]# docker login dzh.org
    Username: dzh
    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
    
    
    #在文件config.json 中可以看到记录的认证(认证一次,永久保存)
    [root@server1 docker]# cat /root/.docker/config.json
    {
    	"auths": {
    		"dzh.org": {
    			"auth": "ZHpoOnJlZGhhdA=="
    		}
    	},
    	"HttpHeaders": {
    		"User-Agent": "Docker-Client/18.06.1-ce (linux)"
    	}
    }
    

    在这里插入图片描述

    在这里插入图片描述

    4.可以上传

    [root@server1 docker]# docker tag ubuntu:v1 dzh.org/ubuntu
    [root@server1 docker]# docker push dzh.org/ubuntu
    The push refers to repository [dzh.org/ubuntu]
    d6eec047ed97: Layer already exists 
    5f70bf18a086: Layer already exists 
    11083b444c90: Layer already exists 
    9468150a390c: Layer already exists 
    56abdd66ba31: Layer already exists 
    latest: digest: sha256:a5a2cfc712a616319f3e71e716f534c373b8cef1a8ec864cc15c2176ae17d507 size: 1358
    

    在这里插入图片描述

    5.退出登陆后不能上传(一直显示在准备中)

    [root@server1 docker]# docker logout dzh.org
    Removing login credentials for dzh.org
    [root@server1 docker]# docker push dzh.org/ubuntu
    The push refers to repository [dzh.org/ubuntu]
    d6eec047ed97: Preparing 
    5f70bf18a086: Preparing 
    11083b444c90: Preparing 
    9468150a390c: Preparing 
    56abdd66ba31: Preparing 
    no basic auth credentials
    

    在这里插入图片描述

    展开全文
  • 搭建Docker本地仓库

    2020-01-12 20:54:53
    搭建Docker本地仓库

    拉取运行registry2

    两种方式,执行运行命令或建个shell脚本;

    #run  //启动容器
    #-d : 让容器可以后台运行
    #--name : 为运行的容器命名
    #-p :指定映射端口(前者是宿主机的端口号,后者是容器的端口号)
    #-v :数据挂载(前者是宿主机的目录,后者是容器的目录)
    

    1 直接执行命令

    sudo docker run -d --restart always --name registry2 -v registry_data:/var/lib/registry -p 5000:5000 registry:2
    

    2 通过shell脚本

    新建shell脚本:registry.sh

    #!/bin/bash
    VOL=registry_data
    docker run -d \
    --restart always \
    --name registry2 \
    -v ${VOL}:/var/lib/registry \
    -p 5000:5000 \
    registry:2
    
    

    执行后会自动拉取最新镜像并运行:
    在这里插入图片描述

    展开全文
  • 一般在工作中,我们都很少用到阿里或者官网提供的docker镜像仓库,每个公司都会自己搭建一个本地镜像...前者会创建一个docker本地仓库,后者相当于docker客户端 1、在服务端192.168.182.166上拉取仓库镜像:registr...

    一般在工作中,我们都很少用到阿里或者官网提供的docker镜像仓库,每个公司都会自己搭建一个本地镜像仓库,那该如何搭建一个docker镜像本地仓库呢,接下来详细步骤奉上。

    接下来我准备俩台虚拟机192.168.182.166,192.168.182.167。前者会创建一个docker本地仓库,后者相当于docker客户端

    1、在服务端192.168.182.166上拉取仓库镜像:registry

    docker pull registry

    2、启动这个仓库镜像文件

    命令基本注释:-v前者是宿主机的目录,后者是容器内部的目录(后者是固定的)

    docker run -d \
    -v /home/docker/registry:/var/lib/registry \
    -p 5000:5000 \
    --restart=always \
    --privileged=true \
    --name registry \
    registry:latest

    如果启动成功的话,则表示在192.168.182.166服务器上建了一个docker本地仓库

    你可以在客户端192.168.182.167服务器上执行:curl http://192.168.182.166:5000/v2/_catalog

    表示仓库一个镜像文件都没有

    接下来开始模拟一个镜像,push到本地仓库中

    3、在192.168.182.166服务器上,根据Dockerfile建立一个镜像文件 

    我的Dockerfile里面是这样写的,有一个nginx基础镜像

    命令:docker build -t 192.168.182.166:5000/case-xuwei:latest . 

    镜像build好了之后,我们就可以push到本地仓库中(正常程序中,都要先测试打好的镜像文件,毕竟没有哪个公司希望在仓库中的东西还是半成品)

    push到本地仓库的命令:docker push 192.168.182.166:5000/case-xuwei:latest

    可能出现的问题

    原因是docker私有仓库服务器,默认是基于https传输的,所以我们需要在客户端192.168.182.167做相关设置,不使用https传输

    vim /etc/docker/daemon.json

    修改如下:

    保存之后还需要做以下操作,使得生效

    systemctl daemon-reload
    systemctl restart docker

    重启完docker之后,在push镜像文件

    docker push 192.168.182.166:5000/case-xuwei:latest

     可以看到命令没有报错,最后看以下仓库是否有这上传上去的镜像文件

    命令:curl http://192.168.182.166:5000/v2/_catalog

    好啦,已经成功将镜像文件push到本地仓库拉

    展开全文
  • Docker 本地仓库搭建

    2018-10-31 10:34:57
    Docker 本地仓库搭建1. 下载仓库镜像2. 创建仓库文件夹3. 启动仓库4. 查看仓库启动5.测试6. 问题解决6.1 创建配置文件 1. 下载仓库镜像 从中央仓库拉取最新的 registry 仓库。 docker pull registry 2. 创建仓库...

    源代码GitHub下载地址:spring-boot-docker

    1. 下载仓库镜像

    从中央仓库拉取最新的 registry 仓库。

    docker pull registry
    

    2. 创建仓库文件夹

    mkdir -pv /opt/docker/registry
    

    3. 启动仓库

    端口映射为:5000
    本地文件映射为:/opt/docker/registry

    docker run -d -p 5000:5000 --restart=always -v /opt/docker/registry:/var/lib/registry  registry
    

    4. 查看仓库启动

    docker ps
    

    可看到输出如下:

    docker ps                                                                                                                                        
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    a7b23b6e8633        registry            "/entrypoint.sh /e..."   8 minutes ago       Up 6 minutes        0.0.0.0:5000->5000/tcp   distracted_jang
    

    访问地址:

    ip为本地仓库ip地址。

    curl http://192.168.234.97:5000/v2/_catalog
    

    5.测试

    使用hello-world镜像进行测试,创建本地 tag

    docker tag hello-world 192.168.234.97:5000/hello
    

    推送到本地仓库

    docker push 192.168.234.97:5000/hello
    

    再次查看:

    curl http://192.168.234.97:5000/v2/_catalog
    

    输出显示,有新增的仓库。

    {"repositories":["hello"]}
    

    6. 问题解决

    推送到本地仓库

    docker push 192.168.234.97:5000/hello
    

    报错

    The push refers to a repository [192.168.234.97:5000/hello]
    Get https://192.168.234.97:5000/v1/_ping: http: server gave HTTP response to HTTPS client
    

    原因分析:

    客户端http不能访问

    解决方案,创建配置文件,修改配置。用到这个仓库的机器都要执行这个操作:

    6.1 创建配置文件

    创建配置文件

    touch /etc/docker/daemon.json
    

    写入配置:

    echo '{ "insecure-registries":["192.168.234.97:5000"] }' >  /etc/docker/daemon.json
    

    重新启动docker

    systemctl restart docker
    

    再次尝试推送到本地仓库,可以成功

    docker push 192.168.234.97:5000/hello
    

    成功输出如下:

    The push refers to a repository [192.168.234.97:5000/hello]
    428c97da766c: Pushed                                                                                                           
    latest: digest: sha256:7d6fb7e5e7a74a4309cc436f6d11c29a96cbf27a4a8cb45a50cb0a326dc32fe8 size: 524
    

    查看镜像tag

    http://192.168.234.97:5000/v2/hello/tags/list 
    
    展开全文
  • 一、声明几点1.1若要实现docker本地仓库的双机互传功能,两台电脑最好能将配置调成一样的,减少因为系统内核或者docker版本引发的问题。1.2本文将就两中情况下的双机互传进行说明,标准的两台centos7系统电脑和使用...
  • docker本地仓库的搭建

    千次阅读 2016-12-10 18:44:40
    一、先说两句 ...二、docker本地仓库搭建 1.准备阶段 1.1查看你的内核[root@cgsl ]# uname -r 我的内核是3.10.0 -229(最后完成整个部署之后成了3.10.0-327)1.2更新yum[root@cgsl ]# yum update1.3安装httpd
  • 基础docker相关文件安装: yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 配置repository yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo ...
  • Docker 本地仓库操作

    2019-08-14 15:01:30
    1, 配置本地仓库访问地址 在/etc/docker/daemon.json 中添加如下内容: "insecure-registries":["xxx.xxx.xxx.xxx:5000"] 然后,重新启动docker systemctl daemon-relaod systemctl restart docker 2. 登陆到...
  • Docker 从入门到放弃(四)之Docker本地仓库 报错 查看镜像 标记镜像 安装registry 推送到本地仓库 访问报错Cannot connect to the Docker daemon. Is the docker daemon running on this host?这个错误只要输入...
  • 为方便之后的学习,本文将介绍在centos7上实现docker本地仓库的搭建。之前写过一篇在centos6上搭建本地仓库的文章,当时使用的registry版本为V1。V1版本在nginx代理上配置和v2版本存在较大差别,前文传送门: ...
  • 本文的环境:centos8,docker20.10.5 关于安装docker : 【往期...其实docker本地仓库配置很简单,就三步就可以了 拉取镜像 运行镜像(1和2其实可以合为一步) 配置daemon.json文件 拉取镜像 docker pull registry
  • 1、创建docker本地仓库 docker pull registry mkdir /usr/local/docker_registry docker run -d -p 5000:5000 --name=my_registry --restart=always --privileged=true -v /usr/local/docker_registry:/var...
  • 搭建docker本地仓库

    2019-04-24 10:38:33
    需要部署本地仓库的服务器一台(下面简称目标服务器),并且安装docker 二 具体步骤 1.拉取官方仓库镜像registry,放到目标服务器下 [root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL ...
  • Docker本地仓库搭建

    2019-04-21 15:59:09
    1. 下载仓库镜像 从中央仓库拉取最新的 registry 仓库docker pull registry 1 2. 创建仓库文件夹 ...本地文件映射为:/opt/docker/registry docker run -d -p 5000:5000 --restart=always -v /o...
  • Docker本地仓库管理

    2020-05-18 18:41:45
    1、Docker导入本地镜像 有时候我们自己在本地或者其它小伙伴电脑上拷贝了一份镜像,有了这个镜像之后,我们可以把本地的镜像导入,使用docker import 命令。 例如这里下载了一个 alibaba-rocketmq-3.2.6.tar.gz 镜像...
  • docker本地仓库使用

    2020-01-07 17:22:23
    1拉取Dockerhub上提供的最新的registry的镜像 #docker pull registry #docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry late...
  • 上一篇讲了怎么部署Nexus,及用Nexus部署yum源,现在讲一下使用Nexus部署docker仓库,为以后部署k8s等做本地仓库。 下面安装docker。 环境:centos7 yum -y install docker yum -y install nginx ...
  • 如何搭建docker本地仓库

    千次阅读 2019-05-26 10:11:03
    作者:【吴业亮】 ...一、创建本地仓库 1、创建仓库 # docker run -d -p 5000:5000 -v /var/lib/registry:/var/lib/registry --restart=always --name registry registry:2 Trying to pull repository ...
  • Docker 本地仓库搭建及http不能访问的解决方式Docker安装省略下载仓库镜像docker pull registry解决http不能访问(用到这个仓库的机器都要执行这个操作)touch /etc/docker/daemon.json可以设多个ip,我后面设了一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,727
精华内容 1,490
关键字:

docker本地仓库