nexus3搭建私有Docker仓库

Nexus3:

version: "3"
services:
  nexus:
    image: sonatype/nexus3:3.33.0
    volumes:
      - /home/nexus-data:/nexus-data
    restart: always
    ports:
      - "8081:8081"
      # 这两个个端口给docker私有仓库使用,在创建仓库时指定,并且在Dockers中需要添加配置 "insecure-registries": ["172.18.0.1:8082"]
      - "5000:5000"
      - "8082:8082"

启动Nexus3

docker-compose -f nexus3_dockerfile up -d

nexus3搭建私有Docker仓库

配置docker仓库

新建docker仓库存储

nexus3搭建私有Docker仓库

新建仓库

nexus3搭建私有Docker仓库

添加权限

nexus3搭建私有Docker仓库

配置docker

在daemon.json中添加如下配置

{
  "insecure-registries": [
    "local.docker.repo:8082","local.docker.repo:5000"
  ],
  "registry-mirrors": [
    "http://local.docker.repo:8082"
  ]
}

在本地host中添加IP映射

192.168.142.128 这个是Nexus3安装机器的IP
192.168.142.128   local.docker.repo

测试使用

登录本地docker仓库

docker login local.docker.repo:8082
Login Succeeded

查看本地镜像

docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
redis             latest    604d80444252   39 hours ago    117MB

将redis镜像打Tag

docker tag redis  local.docker.repo:8082/reids:myreids
#查看
docker images
REPOSITORY                     TAG       IMAGE ID       CREATED         SIZE
redis                          latest    604d80444252   39 hours ago    117MB
local.docker.repo:8082/reids   myreids   604d80444252   39 hours ago    117MB

仔细查看会发现,上面的两个镜像的IMAGE ID是一模一样的,这表示这两个实际上是一个镜像,打Tag只是将这个Image添加了一个远程仓库地址。

## docker inspect 604d80444252
[
  {
    "Id": "sha256:604d80444252dd46a4b4d35bb0226fc16e1022efcd18bf5980650f72d1cf29e5",
    "RepoTags": [
      "redis:latest",
      "local.docker.repo:8082/reids:myreids"
    ],
    "RepoDigests": [
      "redis@sha256:cfda0458239615720cc16d6edf6bae7905c31265f218d2033c43cdb40cd59792",
      "local.docker.repo:8082/reids@sha256:724ea5177e7d07426eea81233896eee4ff37f594097fcb317fac0b67508036ed"
    ],
    "Created": "2022-06-13T20:08:18.293162564Z",
    "Container": "6d8faf114f3b7db70e1440ac6969c969cbcdbf46ab2d51c718d34539cd7ce1a3",
    "Config": {
      "Image": "sha256:67bda0239af475f3fd8fd6d9d7d51dcb47a116600f4be2c47897280800ae1cc2",
      "Volumes": {
        "/data": {}
      },
      "WorkingDir": "/data",
      "Entrypoint": [
        "docker-entrypoint.sh"
      ],
      "OnBuild": null,
      "Labels": null
    },
    "Metadata": {
      "LastTagTime": "2022-06-15T10:58:51.3346662Z"
    }
  }
]

通过命令docker inspect imageId查看到镜像中的RepoTags多了一行数据 “local.docker.repo:8082/reids:myreids”,这个就是本地的docker仓库,而 “redis:latest”则是默认的官方远程仓库。

将打过Tag的镜像推送到Nexus的Docker仓库

docker push local.docker.repo:8082/reids:myreids
The push refers to repository [local.docker.repo:8082/reids]
2e30f92c5d54: Pushed
6f263637b351: Pushed
6278b061fc42: Pushed
309498e524b3: Pushed
49cba0f0997b: Pushed
ad6562704f37: Pushed
myreids: digest: sha256:724ea5177e7d07426eea81233896eee4ff37f594097fcb317fac0b67508036ed size: 1573

nexus3搭建私有Docker仓库

创建自己的镜像

FROM redis:latest
构建一个自定义的tomcat镜像,需要的jdk和tomcat自行下载

WORKDIR /home

ENV CATALINA_HOME /home/tomcat/apache-tomcat-8.5.40

ENV JAVA_HOME /home/jdk/jdk1.8.0_144
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH $PATH:${JAVA_HOME}/bin:${CATALINA_HOME}/bin

CMD [ "catalina.sh", "run" ]

使用上面的Dockerfile创建两个镜像

docker build -t cus:my -f Dockerfile .
[+] Building 0.1s (6/6) FINISHED
 => [internal] load build definition from Dockerfile
 => => writing image sha256:75518b6aca2c4e1cd22bec2e9815a8d851b4a7686f5c17066bd1f273077dd4a8         0.0s
 => => naming to docker.io/library/cus:my

docker build -t local.docker.repo:8082/cus:my -f Dockerfile .
[+] Building 0.1s (6/6) FINISHED
 => [internal] load build definition from Dockerfile
 => => writing image sha256:75518b6aca2c4e1cd22bec2e9815a8d851b4a7686f5c17066bd1f273077dd4a8
 => => naming to local.docker.repo:8082/cus:my

  docker images
REPOSITORY                     TAG       IMAGE ID       CREATED         SIZE
cus                            my        75518b6aca2c   21 hours ago    117MB
local.docker.repo:8082/cus     my        75518b6aca2c   21 hours ago    117MB
redis                          latest    604d80444252   39 hours ago    117MB
local.docker.repo:8082/reids   myreids   604d80444252   39 hours ago    117MB

 docker inspect 75518b6aca2c

从上面结果可以看到,两个镜像实际还是同一个,只是有两个不同的远程仓库地址

推送镜像

docker push local.docker.repo:8082/cus:my
The push refers to repository [local.docker.repo:8082/cus]
5f70bf18a086: Pushed
2e30f92c5d54: Layer already exists
6f263637b351: Layer already exists
6278b061fc42: Layer already exists
309498e524b3: Layer already exists
49cba0f0997b: Layer already exists
ad6562704f37: Layer already exists
my: digest: sha256:eaef54ee0c7eebc47c2bdb8cab81c33909f7c110c9e93ec94f1c1de8054eca36 size: 1779

docker push cus:my
The push refers to repository [docker.io/library/cus]
5f70bf18a086: Preparing
2e30f92c5d54: Preparing
6f263637b351: Preparing
6278b061fc42: Preparing
309498e524b3: Preparing
49cba0f0997b: Waiting
ad6562704f37: Waiting
denied: requested access to the resource is denied
官方的仓库地址推送失败了,这个是正常的,因为我没有登录且也没有权限

nexus3搭建私有Docker仓库

Original: https://www.cnblogs.com/xysgo/p/16379577.html
Author: 菜阿
Title: nexus3搭建私有Docker仓库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590911/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 有道云笔记迁移到为知笔记

    背景 之前一直用的有&am…

    数据库 2023年6月9日
    095
  • SQL99相较于SQL92在多表查询时的新语法

    1.自然连接 NATURAL JOIN SQL99中新增的自然连接相当于SQL92中的等值连接。它可以自动的查询两个表中 所有的相同字段,然后进行等值连接。 在SQL92中: SE…

    数据库 2023年5月24日
    091
  • Centos8 python pip报错: pip is configured with locations that require TLS/SSL 解决

    在使用pip进行软件包安装的时候出现问题: WARNING: pip is configured with locations that require TLS/SSL, howe…

    数据库 2023年6月11日
    084
  • Redis的五大数据类型(简单使用)

    redis是基于内存的,内存的读写速度非常快 ; redis是单线程的,省去了很多上下文切换线程的时间; *redis因为是基于内存的 不涉及io操作 所以单线程效率是最高的 回归…

    数据库 2023年6月6日
    0102
  • Linux 目录挂载服务

    Linux 服务器挂载文件目录通常有三种形式,手动挂载、自动挂载、Autofs 自动挂载,下面对这三个挂载做一下介绍,接受一下这三个区别以及使用场景: 准备服务器和客户端: ser…

    数据库 2023年6月14日
    0108
  • 批量新建域用

    前几个章节我们讲到Windows Server 2016-图形化新建域用户(一),本章节我们简单讲解下如何通过命令批量创建域用户,以便高效完成日常工作中实际批量创建用户需求,内容涉…

    数据库 2023年6月14日
    085
  • DB审核查询平台Archery–安装部署可能遇到的问题

    Archery是archer的分支项目,定位于SQL审核查询平台,旨在提升DBA的工作效率,支持多数据库的SQL上线和查询,同时支持丰富的MySQL运维功能,所有功能都兼容手机端操…

    数据库 2023年5月24日
    069
  • 人如蝼蚁,跌倒再起。

    本文来自博客园,作者:ukyo–BlackJesus,转载请注明原文链接:https://www.cnblogs.com/ukzq/p/16750141.html Or…

    数据库 2023年6月11日
    0104
  • 2022-08-16 数据库查询语言之——-DQL

    重点,DQL是我们每天都要接触编写最多也是最难的SQL,该语言用来查询记录,不会修改数据库和表结构。 构建数据库 创建一张student表: DROP TABLE IF EXIST…

    数据库 2023年5月24日
    078
  • 使用postman Mock后端响应

    使用postman Mock后端响应 接口文档开发与评审后,前后端各自依照标准进行开发,此时前端人员有以下选择: 使用工具自己mock构造后端数据验证已开发页面 在项目中自己编写添…

    数据库 2023年6月6日
    0105
  • Docker Bridge 网络原理

    Docker 的网络子系统是可插拔驱动式的,默认情况下存在或支持多种网络接口,如 bridge、host、overlay、macvlan 以及 none 类型的网络接口。 brid…

    数据库 2023年6月6日
    098
  • 一句话的需求怎么测?需求文档的三种现状及应对策略

    转载请注明出处❤️ 你好,我是测试蔡坨坨。 今天,我们来聊聊需求文档那些事儿…… 众所周知,软件需求是软件项目研发的开始,是组建研发团队后第一次集体讨论的事…

    数据库 2023年6月11日
    088
  • Centos静默安装Oracle11G

    环境准备 Oracle 11gR2 64位 Linux版安装包 linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_…

    数据库 2023年6月16日
    076
  • 4. 事务和锁

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    数据库 2023年5月24日
    085
  • Eureka详解系列(四)–Eureka Client部分的源码和配置

    按照原定的计划,我将分三个部分来分析 Eureka 的源码: 今天,我们来研究第二部分的源码。 我的思路是这样子的:先明确 Eureka Client 拥有哪些功能,然后从源码角度…

    数据库 2023年6月6日
    091
  • 数据库原理一—MySQL基本架构与索引

    MySQL基本架构 Server层包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持In…

    数据库 2023年6月6日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球