Easypack容器系列之:Nexus 3:Docker私库
Nexus作为私库管理最为流行的工具之中的一个,用于包的管理和Docker镜像管理的私库管理场景中非经常常使用。Easypack利用最新版本号的oss版Nexus作为基础镜像用于提供相似服务。
本文将同一时候给出具体步骤结合最新发行的Docker-CE版本号实现镜像私库的管理。
Why Nexus 3
这里整理了为什么使用Nexus 3的一些理由,在做选型的时候能够做一个简单參照。
| 项目 | 具体 |
|---|---|
| 为什么使用Nexus 3 | http://blog.csdn.net/liumiaocn/article/details/62050525 |
docker版本号
本次使用的docker的版本号为17.03.0-ce,可是应该并不限于此版本号,其它版本号未作验证。
[root@liumiaocn ~]# docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 08:10:07 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 08:10:07 2017
OS/Arch: linux/amd64
Experimental: false
[root@liumiaocn ~]#
下载镜像
[root@liumiaocn ~]# docker pull liumiaocn/nexus
Using default tag: latest
latest: Pulling from liumiaocn/nexus
Digest: sha256:b93f9a6bba2b35ada33c324cd06bd2c732fc1bed352df186af1a013e228af8d8
Status: Image is up to date for liumiaocn/nexus:latest
[root@liumiaocn ~]#
启动Nexus
| 项目 | 具体 |
|---|---|
| Nexus UI | 8081 |
| private repo | 8082 |
| proxy repo | 8083 |
| URL | http://192.168.32.123:8081/ |
[root@liumiaocn ~]# docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus liumiaocn/nexus
222abae47fcf9d32c821bff6426edd03f6757a3dd4cbe07517dada5d800e173f
[root@liumiaocn ~]#
logon
| 项目 | 具体 |
|---|---|
| URL | http://192.168.32.123:8081/ |
| username称 | admin |
| 用户password | admin123 |
登陆之后
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1bWlhb2Nu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">
仓库类型
具体仓库类型主要分为hosted/proxy/group三种。
具体含义例如以下:
| 项目 | 具体说明 |
|---|---|
| hosted | 本地存储。像官方仓库一样提供本地私库功能 |
| proxy | 提供代理其它仓库的类型 |
| group | 组类型,能够组合多个仓库为一个地址提供服务 |
创建priavete仓库
创建一个Hosted的仓库作为private仓库,具体设定信息例如以下:
| 项目 | 具体说明 |
|---|---|
| 类型 | docker (hosted) |
| Name | docker-repo-private |
| HTTP Port | 8082 |
| Blob store | docker-repo-private |
| Deployment policy | Allow redeploy |
创建proxy仓库
创建一个proxy仓库。具体设定信息例如以下:
| 项目 | 具体说明 |
|---|---|
| 类型 | docker (proxy) |
| Name | docker-repo-proxy |
| Location of the remote repository being proxied | https://registry-1.docker.io |
| Docker Index | Use Docker Hub |
| Blob store | docker-repo-proxy |
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1bWlhb2Nu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">
创建group仓库
创建一个group仓库。具体设定信息例如以下:
| 项目 | 具体说明 |
|---|---|
| 类型 | docker (group) |
| Name | docker-repo-group |
| HTTP Port | 8083 |
| Blob store | docker-repo-group |
| Member repositories | docker-repo-private |
| Member repositories | docker-repo-proxy |
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1bWlhb2Nu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">
docker设定
Docker的私库能够使用HTTP或者HTTPS。Nexus 3都予以支持。本文的方式採用HTTP方式。因此须要设定docker。在docker启动前设定例如以下信息是须要的
| 项目 | 具体说明 |
|---|---|
| 设定对象文件 | /etc/docker/daemon.json |
| 设定内容 | insecure-registries |
设定具体内容。例如以下所看到的:
[root@liumiaocn ~]# cat /etc/docker/daemon.json
{
"insecure-registries": [
"192.168.32.123:8082",
"192.168.32.123:8083"
],
"disable-legacy-registry": true
}
[root@liumiaocn ~]#
重新启动docker
[root@liumiaocn docker]# systemctl restart docker
[root@liumiaocn docker]#
启动nexus
随着docker的重新启动。nexus的容器也须要启动。具体例如以下所看到的:
[root@liumiaocn docker]# docker start nexus
nexus
[root@liumiaocn docker]#
确认
至此,Nexus的设定准备基本就绪。能够确认结果了。
docker login
为了进行操作。须要事先进行docker login的操作
| 项目 | 具体说明 |
|---|---|
| private仓库 | docker login -u admin -p admin123 192.168.32.123:8082 |
| proxy仓库 | docker login -u admin -p admin123 192.168.32.123:8083 |
运行确认
[root@liumiaocn ~]# docker login -u admin -p admin123 192.168.32.123:8082
Login Succeeded
[root@liumiaocn ~]# docker login -u admin -p admin123 192.168.32.123:8083
Login Succeeded
[root@liumiaocn ~]#
proxy仓库确认
从remote仓库pull下来镜像。然后确认是否在proxy仓库中存在
[root@liumiaocn ~]# docker pull 192.168.32.123:8083/alpine:3.5
3.5: Pulling from alpine
627beaf3eaaf: Downloading
unknown blob
[root@liumiaocn docker]#
查了一下nexus的一些issue,发现有不少都是跟blob相关,看起来相关的小的问题另一些在不断的收拾中,可是不影响结果。
确认proxy仓库,发现pull的alpine的3.5版本号已然在proxy仓库中保存完成,所以上面的unknown blob也确实没有影响结果。
private仓库确认
事前镜像确认
[root@liumiaocn ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 00f017a8c2a6 2 days ago 1.11 MB
liumiaocn/maven latest 833b66f10ce6 5 days ago 160 MB
liumiaocn/nexus latest 932d715eb7e1 5 days ago 460 MB
liumiaocn/gitlab latest 2462fb291203 5 days ago 1.21 GB
liumiaocn/jenkins latest 6668ecd39e4f 5 days ago 293 MB
[root@liumiaocn ~]#
tag busybox镜像
[root@liumiaocn ~]# docker tag busybox 192.168.32.123:8082/busybox:latest
[root@liumiaocn ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.32.123:8082/busybox latest 00f017a8c2a6 2 days ago 1.11 MB
busybox latest 00f017a8c2a6 2 days ago 1.11 MB
liumiaocn/maven latest 833b66f10ce6 5 days ago 160 MB
liumiaocn/nexus latest 932d715eb7e1 5 days ago 460 MB
liumiaocn/gitlab latest 2462fb291203 5 days ago 1.21 GB
liumiaocn/jenkins latest 6668ecd39e4f 5 days ago 293 MB
[root@liumiaocn ~]#
docker push
[root@liumiaocn ~]# docker push 192.168.32.123:8082/busybox:latest
The push refers to a repository [192.168.32.123:8082/busybox]
c0de73ac9968: Pushed
latest: digest: sha256:68effe31a4ae8312e47f54bec52d1fc925908009ce7e6f734e1b54a4169081c5 size: 527
[root@liumiaocn ~]#
结果确认:busybox镜像已经被正常地push到了private仓库中
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1bWlhb2Nu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">
docker pull
为了确认docker pull的动作。事前先将之前的busybox先行删除,以确认确实下载了新的busybox镜像到本地。
[root@liumiaocn ~]# docker rmi busybox
Untagged: busybox:latest
Untagged: busybox@sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f
[root@liumiaocn ~]# docker rmi 192.168.32.123:8082/busybox
Untagged: 192.168.32.123:8082/busybox:latest
Untagged: 192.168.32.123:8082/busybox@sha256:68effe31a4ae8312e47f54bec52d1fc925908009ce7e6f734e1b54a4169081c5
Deleted: sha256:00f017a8c2a6e1fe2ffd05c281f27d069d2a99323a8cd514dd35f228ba26d2ff
Deleted: sha256:c0de73ac99683640bc8f8de5cda9e0e2fc97fe53d78c9fd60ea69b31303efbc9
[root@liumiaocn ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
liumiaocn/maven latest 833b66f10ce6 5 days ago 160 MB
liumiaocn/nexus latest 932d715eb7e1 5 days ago 460 MB
liumiaocn/gitlab latest 2462fb291203 5 days ago 1.21 GB
liumiaocn/jenkins latest 6668ecd39e4f 5 days ago 293 MB
[root@liumiaocn ~]#
docker pull操作:能够看到确实是从private仓库下载下来了镜像,并且速度也明显快了非常之多。
[root@liumiaocn ~]# docker pull 192.168.32.123:8082/busybox
Using default tag: latest
latest: Pulling from busybox
04176c8b224a: Pull complete
Digest: sha256:68effe31a4ae8312e47f54bec52d1fc925908009ce7e6f734e1b54a4169081c5
Status: Downloaded newer image for 192.168.32.123:8082/busybox:latest
[root@liumiaocn ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.32.123:8082/busybox latest 00f017a8c2a6 2 days ago 1.11 MB
liumiaocn/maven latest 833b66f10ce6 5 days ago 160 MB
liumiaocn/nexus latest 932d715eb7e1 5 days ago 460 MB
liumiaocn/gitlab latest 2462fb291203 5 days ago 1.21 GB
liumiaocn/jenkins latest 6668ecd39e4f 5 days ago 293 MB
[root@liumiaocn ~]#
总结
至此,怎样使用Nexus管理Docker镜像已然十分清楚,可是怎样非常好的管理镜像,备份机制/版本号控制/差分管理/定期cache/及时清理等方面还有非常多问题须要考虑。须要在实际的工作中不断实践总结。
Easypack容器系列之:Nexus 3:Docker私库的更多相关文章
- docker私库harbor的搭建
1.文件下载 # wget https://storage.googleapis.com/harbor-releases/harbor-online-installer-v1.5.1.tgz 安装官网 ...
- docker私库Harbor部署(转载)
系统环境 centos7.3docker-ce docker version: 18.03.0docker-compose version: 1.21.0 Install Docker CE 安装依赖 ...
- ubuntu16搭建docker私库
测试环境如下: 一.docker的安装 安装方法请查看这里的 安装教程 二.设置普通用户 1. centos的设置方法 $ sudo gpasswd -a docker ${USER} 2. ubun ...
- Docker搭建Nexus(Maven私库)
0.镜像的查找:docker search nexus 1.拉取官方镜像:docker pull sonatype/nexus3 2.创建了自己的目录 (/opt/nexus/nexus-data) ...
- 使用nexus搭建maven私库
什么是nexus? nexus是一个maven仓库管理器,使用nexus可以快速便捷的搭建自己的maven私有仓库. docker安装nexus 拉取镜像 docker pull sonatype/n ...
- Docker version 1.12.5建立registry私库
sudo docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry :前面的是宿主机的地址(/opt/da ...
- Docker4-docker私库的搭建及常用方法-docker-registry方式
一.简单介绍 前面已经介绍,可以使用Docker Hub公共仓库,但是大多数情况企业都需要创建一个本地仓库供自己使用.这里介绍几种搭建私库的方法 私库的好处有几点 1.节约带宽 2.可以自己定制系统 ...
- Docker 容器中搭建 nexus npm私库
1,版本 dockers :1.13.1 :nexus 3 2,安装 docker pull liumiaocn/nexus 3,启动 项目 详细 Nexus UI 8081 private re ...
- Docker系列-第五篇Docker容器数据卷
1.是什么 在生产环境中使用 Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作 . 容器中的管理数据主要有两种方式 : 数据卷 ( Data V ...
随机推荐
- 实战WCF中net.tcp和net.msmq绑定协议
平时很少写博文的,以前都是转载其他园友的文章,这几天有时间就自己尝试写一些wcf相关的文章,希望能给有需要的人带来一点帮助吧,水平有限再加上初次动手,写得不好还请多多包含!废话不多说了直接进入正题. ...
- [xampp] /usr/bin/env: php: No such file or directory
ln -s /opt/lampp/bin/php /usr/local/bin/php
- Codeforces 1023 D.Array Restoration-RMQ(ST)区间查询最值 (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)
D. Array Restoration 这题想一下就会发现是只要两个相同的数之间没有比它小的就可以,就是保存一下数第一次出现和最后一次出现的位置,然后查询一下这个区间就可以,如果有0的话就进行填充. ...
- 洛谷 P1068 分数线划定【结构体排序】
题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据计划录取人数的150%划 ...
- 12、Flask实战第12天:子域名
什么是子域名,我们的后台管理系统, 比如cms.heboan.com.配置子域名需要用到蓝图技术: 我现在buleprints下面创建一个cms.py 蓝图 from flask import Blu ...
- [Atcoder Regular Contest 063] Tutorial
Link: ARC063 传送门 C: 将每种颜色的连续出现称为一段,寻找总段数即可 #include <bits/stdc++.h> using namespace std; ,len; ...
- [Codeforces 8E] Beads
Brief Intro: 将所有n位二进制串中满足字典序不大于其逆序串,取反串,逆序取反串中按字典序排序的第m个输出 n<=50 Algorithm: 首次接触数位DP的题目 根据数据范围,我们 ...
- 【博弈论】【SG函数】【枚举】bzoj1188 [HNOI2007]分裂游戏
因为第i个瓶子里的所有豆子都是等价的,设sg(i)表示第i个瓶子的sg值,可以转移到sg(j)^sg(k)(i<j<n,j<=k<n)的状态. 只需要考虑豆子数是奇数的瓶子啦, ...
- [CF538H]Summer Dichotomy
[CF538H]Summer Dichotomy 题目大意: 将若干个学生分为两个班级\(S_1,S_2\),每个班的学生数分别为\(n_1,n_2\)(甚至可以没有学生,也可以没有老师).给出限 ...
- Matlab与神经网络入门
第一节.神经网络基本原理 1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示: 图1. 人工神经元模型 图中x1~xn是从其他神经 ...