容器镜像外网同步方案

目录

一、目的

二、安装nexus

1、购买香港云主机​编辑

2、安装nexus

3、启动nexus 服务

4、放行安全组

三、配置nexus

1、登录nexus管理页面

2、修改nexus密码

3、创建 Blob 存储空间(可选)

4、创建 镜像代理仓库

5、Realms配置

四、拉取镜像

1、配置docker

 2、拉取镜像

一、目的

       nexus不仅可以作为docker镜像的代理仓库还常用于作为maven的中央仓库,解决开发过程中直接访问外网或者国外网络的代理,加快了开发代码构建的速度和解决网络问题。

        为了解决国内docker无妨访问dockerhub官方镜像仓库,或者docker部署与内网无法访问公网的问题,通常可以使用nexus作为中央仓库来实现。

        1、当docker部署在内网无法访问公网的仓库,需要在可访问公网的服务器部署nexus服务,并且打通docker访问nexus服务的网络。

        2、当docker需要访问国外的dockerhub等镜像仓库,可通过在国外或香港区域服务器部署nexus服务来作为docker的代理服务器( nexus 3版本之后才支持docker镜像代理)。

二、安装nexus

        由于香港可以直接访问境外网络,则我直接购买腾讯云香港区域的云主机用来部署nexus服务,用来作为docker镜像代理服务器。(你也可以直接购买非中国的境外云服务器部署nexus)。

        购买云主机务必记得分配公网IP并开通对应的安全组,nexus管理页面端口默认是8081。docker镜像代理端口可自定义,该端口我用的是 8443,所以安全组需要放行8081和8443端口。

1、购买香港云主机

2、安装nexus

        由于nexus需要依赖jdk,所以安装nexus前,需要先安装jdk。若是使用docker安装nexus,则不需要安装jdk。本文我使用docker安装nexus

Nexus的官方网站:Download Nexus Repository OSS | Sonatype

Nexus的官方帮助文档:Sonatype Nexus Repository

Nexus的Docker安装介绍:Installation Methods

# 安装docker 和 docker-compose

yum install -y docker-compose.noarch docker.x86_64

systemctl enable  docker && systemctl start docker
# 创建用户安装 nexus 的目录,可自定义

mkdir -p /root/nexus/data && chmod 777 -R /root/nexus/data

cd /root/nexus/ && touch docker-compose.yaml
# docker-compose.yaml 文件的内容见:
# cd /root/nexus/

version: '3'
services:
  nexus:
    image: sonatype/nexus3:latest
    restart: always
    ports:
      - 8081:8081
      - 8443:8443
    volumes:
      - ./data:/nexus-data

3、启动nexus 服务

# 启动 nexus 服务

cd /root/nexus
docker-compose up -d

# 查看 nexus 容器
cd /root/nexus
docker-compose ps

# 查看 nexus 日志
cd /root/nexus
docker-compose logs

4、放行安全组

        nexus默认端口是: 8081

        我自定义的docker代理服务端口是: 8443

三、配置nexus

1、登录nexus管理页面

        登录地址: 云主机IP/域名:8081

        登录用户:  admin

        我的环境密码:  cat /root/nexus/data/admin.password     

2、修改nexus密码

        修改后的账号密码分别是: admin/nexus

3、创建 Blob 存储空间(可选)

       可选是否要创建 Blob,若不创建blob,则使用默认的default。

4、创建 镜像代理仓库

        默认情况下,Nexus 会帮我们创建几个仓库:

  • maven-central:代理仓库,一般会连接外部的中央仓库;
  • maven-public:仓库组,一般提供这个仓库给公司内部的同事使用;
  • maven-release:本地仓库,一般用于存放公司内部开发的Jar包;
  • maven-snapshots:本地仓库,存放公司开发的snapshot版本的包;
  • maven-3rd-party:本地仓库,存放第三方的Jar包。

         docker镜像仓库代理说明:

  • docker(hosted)私有仓库,可以pull和push 
  • docker(proxy)代理远程仓库,只能pull
  • docker(group)私有仓库和代理的组,只能pull 
  • hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
  • proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
  • group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

5、Realms配置

 

四、拉取镜像

1、配置docker

        由于docker-proxy 镜像代理是http非安全的协议,所以需要配置docker。若是通过nginx代理配置docker-proxy为可信的https,则不需要再配置docker。

        在国内的docker主机配置docker的配置文件: /etc/docker/daemon.json

touch    /etc/docker/daemon.json

# 重启 docker 使配置生效
systemctl reload docker.service

 2、拉取镜像

  • 29
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值