当前位置: 移动技术网 > 科技>操作系统>Linux > Docker系列08—搭建使用私有docker registry

Docker系列08—搭建使用私有docker registry

2019年01月11日  | 移动技术网科技  | 我要评论

本文收录在

1、了解docker registry

1.1 介绍

  • registry 用于保存docker 镜像,包括镜像的层次结构和元数据。
  • 启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,其将从registry中下载该镜像并保存到本地;
  • 拉取镜像时,如果不知道registry仓库地址,默认从docker hub搜索拉取镜像

 

1.2 分类

  • sponsor registry:第三方的registry,供客户和docker社区使用;
  • mirror registry:第三方的registry,只让客户使用;如docker cn和阿里云的镜像加速器;
  • vendor registry:服务商的registry,由发布docker镜像的供应商提供的registry;如红帽提供的专有的,收费提供;
  • private registry:通过设有防火墙和额外的安全层的私有实体提供的registry;自建的registry,在本地搭建registry,节省带宽

 

1.3 registry组成(repositoryindex

(1)repository

  • 由特定的docker镜像的所有迭代版本组成的镜像仓库;
  • 一个registry中可以存在多个repository
    •  repository可分为顶层仓库用户仓库
    •  用户仓库名称格式为用户名/仓库名
  • 每个仓库可以包含多个tag(标签),每个标签对应一个镜像

 

(2)index

  • 维护用户账户、镜像的校验以及公共命名空间的信息
  • 相当于为registry提供了一个完成用户认证等功能的检索接口

 

1.4 拉取上传仓库镜像

1)拉取镜像

docker pull <registry>[:<port>]/[<namespace>/]<name>:<tag>
  •  registry:仓库服务器地址:不指定默认是docker hub
  •  port:端口;默认是443,因为是https协议
  •  namespace:名称空间,指是哪个用户的仓库,如果是顶层仓库,可省
  •  name:仓库名
  •  tag:标签名;默认是latest版本

 

2)上传镜像

docker push [options] name[:tag]

 

1.5 知名docker仓库

    例:docker pull quay.io/coreos/flannel:v0.10.0-amd64

 

  博主前面的文章已经详细介绍过,从第三方的registry 上传拉取镜像了;这篇就是详细讲解如果搭建私有registry ,并在私有registry上传拉取镜像了。

 

2、搭建私有仓库 distribution

2.1 distribution 介绍

docker提供的开源registry,但是很简单,只能作为存储镜像的仓库,没有额外的功能;如管理页面等

 

2.2 安装启动 distribution

两种方案安装,我采用的是方案2

2.2.1 方案1:使用yum安装(直接从extras 源中下载安装)

[root@docker2 ~]# yum info docker-distribution
已加载插件:fastestmirror
loading mirror speeds from cached hostfile
可安装的软件包
名称    :docker-distribution
架构    :x86_64
版本    :2.6.2
发布    :2.git48294d9.el7
大小    :3.5 m
源    :extras/7/x86_64
简介    : docker toolset to pack, ship, store, and deliver content
网址    :https://github.com/docker/distribution
协议    : asl 2.0
描述    : docker toolset to pack, ship, store, and deliver content
[root@docker2 ~]# yum -y install docker-distribution

 

2.2.2 方案2:拉取镜像,作为容器安装

1)拉取镜像

[root@docker2 ~]# docker pull registry:2.6.2
2.6.2: pulling from library/registry
d6a5679aa3cf: pull complete 
ad0eac849f8f: pull complete 
2261ba058a15: pull complete 
f296fda86f10: pull complete 
bcd4a541795b: pull complete 
digest: sha256:5a156ff125e5a12ac7fdec2b90b7e2ae5120fa249cf62248337b6d04abc574c8
status: downloaded newer image for registry:2.6.2

 

2)启动registry 容器

[root@docker2 ~]# docker run --name registry -p 5000:5000 -v /data/registry:/var/lib/registry -d registry:2.6.2 
a43f802e737eba89879a4dc02562b38e0042db981f9bdb91782b453f0bac4119
[root@docker2 ~]# docker port registry 
5000/tcp -> 0.0.0.0:5000
[root@docker2 ~]# ss -nutlp |grep 5000
tcp    listen     0      128      :::5000                 :::*                   users:(("docker-proxy",pid=4901,fd=4))
[root@docker2 ~]# docker inspect -f {{."mounts"}} registry
[{bind  /data/registry /var/lib/registry   true rprivate}]

注:

  •  -p 5000:5000:将容器中的5000端口,暴露在宿主机的5000端口
  •  -v /data/registry:/var/lib/registry:指定宿主机存储的位置为 /data/registry
  •  -d:后台运行容器

 

2.3 从私有仓库上传下载镜像

2.3.1 将本地的镜像上传到私有仓库

1)先将本地仓库打上合适的标签

[root@docker1 ~]# docker tag busybox:latest 192.168.10.102:5000/busybox:v0.1
[root@docker1 ~]# docker image ls
repository                    tag                 image id            created             size
192.168.10.102:5000/busybox   v0.1                758ec7f3a1ee        13 days ago         1.15 mb
busybox                       latest              758ec7f3a1ee        13 days ago         1.15 mb

  

2)尝试删除镜像

[root@docker1 ~]# docker push 192.168.10.102:5000/busybox:v0.1 
the push refers to a repository [192.168.10.102:5000/busybox]
get https://192.168.10.102:5000/v1/_ping: http: server gave http response to https client

上传镜像失败;原因:docker 上传下载默认只支持https协议,搭建的私有仓库是http协议。

 

3)修改重启docker服务

[root@docker1 ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries": ["192.168.10.102:5000"]
}
[root@docker1 ~]# systemctl restart docker

注:就是将私有仓库认证为安全仓库:"insecure-registries": [""]

 

4)再次上传镜像,成功

[root@docker1 ~]# docker push 192.168.10.102:5000/busybox:v0.1 
the push refers to a repository [192.168.10.102:5000/busybox]
23bc2b70b201: pushed 
v0.1: digest: sha256:cbcde3595079b1f7a6b046e96e7547fe786d5c2c8eba678bc260161bc01b8dbe size: 527

  

5)在私有仓库的服务器上验证

[root@docker2 ~]# ls /data/registry/docker/registry/v2/
blobs  repositories

  

6)从私有仓库拉取镜像,先删除再拉取

[root@docker1 ~]# docker rmi 192.168.10.102:5000/busybox:v0.1 
untagged: 192.168.10.102:5000/busybox:v0.1
untagged: 192.168.10.102:5000/busybox@sha256:cbcde3595079b1f7a6b046e96e7547fe786d5c2c8eba678bc260161bc01b8dbe
[root@docker1 ~]# docker image ls
repository               tag                 image id            created             size
busybox                  latest              758ec7f3a1ee        2 weeks ago         1.15 mb
[root@docker1 ~]# docker pull 192.168.10.102:5000/busybox:v0.1
v0.1: pulling from busybox
digest: sha256:cbcde3595079b1f7a6b046e96e7547fe786d5c2c8eba678bc260161bc01b8dbe
status: downloaded newer image for 192.168.10.102:5000/busybox:v0.1
[root@docker1 ~]# docker image ls
repository                    tag                 image id            created             size
192.168.10.102:5000/busybox   v0.1                758ec7f3a1ee        2 weeks ago         1.15 mb

  

3、安装搭建私有仓库 harbor

3.1 认识 harbor

3.1.1 harbor 介绍

  •  harbor gitlab项目地址:
  •  harbor是一个开源的可信云本机注册表项目,用于存储,签名和扫描内容。harbor通过添加用户通常需要的功能(如安全性,身份和管理)来扩展开源docker distribution。使注册表更接近构建和运行环境可以提高图像传输效率。harbor支持在注册表之间复制映像,还提供高级安全功能,如用户管理,访问控制和活动审计。
  •  harbourcloud native computing foundationcncf)托管。如果您是一个希望帮助塑造云原生技术发展的组织,请考虑加入cncf。有关谁参与以及harbour如何扮演角色的详细信息,请阅读cncf 公告。

 

3.1.2 harbor 特征

  •  云本机注册表harbour 支持容器映像和helm图表,可用作云本机环境(如容器运行时和业务流程平台)的注册表。
  •  基于角色的访问控制:用户和存储库通过项目进行组织,用户可以对项目下的图像拥有不同的权限。
  •  基于策略的映像复制:可以基于具有多个过滤器(存储库,标记和标签)的策略在多个注册表实例之间复制(同步)映像。如果遇到任何错误,harbor将自动重试进行复制。非常适合负载平衡,高可用性,多数据中心,混合和多云场景。
  •  漏洞扫描harbor定期扫描图像并警告用户漏洞。
  •  ldap / ad支持harbor与现有企业ldap / ad集成以进行用户身份验证和管理,并支持将ldap组导入harbor并为其分配适当的项目角色。
  •  图像删除和垃圾收集:可以删除图像,并可以回收它们的空间。
  •  公证:可以确保图像的真实性。
  •  图形用户门户:用户可以轻松浏览,搜索存储库和管理项目。
  •  审计:跟踪存储库的所有操作。
  •  restful api:适用于大多数管理操作的restful api,易于与外部系统集成。
  •  易于部署:提供在线和离线安装程序。

 

3.1.3 harbor 配置参数

1)参数介绍

配置参数位于文件harbor.cfg中。

harbor.cfg中有两类参数,必需参数和可选参数。

  •  required参数:需要在配置文件中设置这些参数。如果用户更新它们harbor.cfg并运行install.sh脚本以重新安装harbor,它们将生效。
  •  可选参数:这些参数对于更新是可选的,即用户可以将它们保留为默认值,并在启动harbour后在web portal上更新它们。如果它们已经启用harbor.cfg,它们只会在首次启动harbour时生效。harbor.cfg将忽略对这些参数的后续更新。

注意:如果您选择通过portal设置这些参数,请务必在harbour启动后立即执行此操作。特别是,您必须在harbour中注册或创建任何新用户之前设置所需的auth_mode。当系统中有用户时(除默认管理员用户外), 无法更改auth_mode

请注意,至少需要更改hostname属性。

 

2)必需参数

  •  hostname目标主机的主机名,用于访问portal和注册表服务。它应该是目标计算机的ip地址或完全限定的域名(fqdn),例如,192.168.1.10reg.yourdomain.com。不要使用localhost127.0.0.1作为主机名 - 外部客户端需要访问注册表服务!
  •  ui_url_protocol :( httphttps默认为http)用于访问portal和令牌/通知服务的协议。如果启用了公证,则此参数必须为https。默认情况下,这是http。要设置https协议,请参阅使用https访问配置harbor
  •  db_password用于db_authpostgresql数据库的root密码。更改此密码以用于任何生产用途!
  •  max_job_workers :(默认值为10)作业服务中的最大复制工作者数。对于每个映像复制作业,工作程序将存储库的所有标记同步到远程目标。增加此数量可以在系统中实现更多并发复制作业。但是,由于每个工作者都消耗一定量的网络/ cpu / io资源,请根据主机的硬件资源仔细选择该属性的值。
  •  customize_crton or off. default is on),如果此属性on,在准备脚本创建注册表的令牌生成/验证私钥和根证书。当外部源提供密钥和根证书时,将此属性设置为off。有关详细信息,请参阅自定义密钥和港口令牌服务证书。
  •  ssl_certssl证书的路径,仅在协议设置为https时应用。
  •  ssl_cert_keyssl密钥的路径,仅在协议设置为https时应用。
  •  secretkey_path:用于加密或解密复制策略中远程注册表密码的密钥路径。
  •  log_rotate_count:日志文件在被删除之前会被轮换log_rotate_count次。如果count0,则删除旧版本而不是旋转。
  •  log_rotate_size:仅当日志文件大于log_rotate_size字节时才会轮换日志文件。如果大小后跟k,则假定大小以千字节为单位。如果使用m,则大小以兆字节为单位,如果使用g,则大小为千兆字节。尺寸100,尺寸100k,尺寸100m和尺寸100g都是有效的。
  •  http_proxy:为clair配置http代理,例如http://my.proxy.com:3128
  •  https_proxy:为clair配置https代理,例如http://my.proxy.com:3128
  •  no_proxy:为clair配置无代理,例如127.0.0.1,localhost,core,registry

 

3)可选参数

  • 电子邮件设置harbor需要这些参数才能向用户发送密码重置电子邮件,并且仅在需要该功能时才需要。另外,请注意,在默认情况下ssl连接时没有启用-如果你的smtp服务器需要ssl,但不支持starttls,那么你应该通过设置启用ssl email_ssl = true。如果电子邮件服务器使用自签名证书或不受信任证书,则设置email_insecure = true
    •  email_server = smtp.mydomain.com
    •  email_server_port = 25
    •  email_identity =
    •  email_username = sample_admin@mydomain.com
    •  email_password = abc
    •  email_from = admin sample_admin@mydomain.com
    •  email_ssl = false
    •  email_insecure = false
  •  harbor_admin_password:管理员的初始密码。此密码仅在harbor首次启动时生效。之后,将忽略此设置,并且应在portal中设置管理员密码。请注意,默认用户名/密码为admin / harbor12345
  •  auth_mode:使用的身份验证类型。默认情况下,它是db_auth,即凭据存储在数据库中。对于ldap身份验证,请将其设置为ldap_auth。重要信息:从现有harbor实例升级时,必须确保在启动新版本的harbor之前auth_mode相同harbor.cfg。否则,用户可能无法在升级后登录。
  •  ldap_urlldap端点url(例如ldaps://ldap.mydomain.com)。 仅在auth_mode设置为ldap_auth时使用。
  •  ldap_searchdn:具有搜索ldap / ad服务器权限的用户的dn(例如uid=admin,ou=people,dc=mydomain,dc=com)。
  •  ldap_search_pwdldap_searchdn指定的用户密码。
  •  ldap_basedn:查找用户的基本dn,例如ou=people,dc=mydomain,dc=com 仅在auth_mode设置为ldap_auth时使用。
  •  ldap_filter:用于查找用户的搜索过滤器,例如(objectclass=person)
  •  ldap_uid:用于在ldap搜索期间匹配用户的属性,它可以是uidcnemail或其他属性。
  •  ldap_scope:搜索用户的范围,0-ldap_scope_base1-ldap_scope_onelevel2-ldap_scope_subtree。默认值为2
  •  ldap_timeout:连接ldap服务器时超时(以秒为单位)。默认值为5
  •  ldap_verify_cert:验证来自ldap服务器的证书。默认为true
  •  ldap_group_basedn:在ldap / ad中查找组的基本dn,例如ou=group,dc=mydomain,dc=com
  •  ldap_group_filter:搜索ldap / ad组的过滤器,例如objectclass=group
  •  ldap_group_gid:用于命名ldap / ad组的属性,它可以是cnname
  •  ldap_group_scope:搜索ldap组的范围。0-ldap_scope_base1-ldap_scope_onelevel2-ldap_scope_subtree。默认值为2
  •  self_registration :( 打开或关闭。默认打开)启用/禁用用户注册他/她自己的能力。禁用时,新用户只能由管理员用户创建,只有管理员用户可以在harbor中创建新用户。 注意:当auth_mode设置为ldap_auth时,始终禁用自注册功能,并忽略此标志。
  •  token_expiration:令牌服务创建的令牌的到期时间(以分钟为单位),默认为30分钟。
  •  project_creation_restriction:用于控制用户有权创建项目的标志。默认情况下,每个人都可以创建一个项目,设置为“adminonly”,这样只有管理员才能创建项目。

 

4)配置存储后端(可选)

  默认情况下,harbor将图像存储在本地文件系统中。在生产环境中,您可以考虑使用其他存储后端而不是本地文件系统,如s3openstack swiftceph等。这些参数是注册表的配置。

  •  registry_storage_provider_name:注册表的存储提供程序名称,可以是filesystems3gcsazure等。默认为filesystem
  •  registry_storage_provider_config:存储提供程序配置的逗号分隔“keyvalue”对,例如“key1valuekey2value2”。默认为空字符串。
  •  registry_custom_ca_bundle:自定义根ca证书的路径,它将注入到注册表和图表存储库容器的信任库中。当用户使用自签名证书托管内部存储时,通常需要这样做。

例如,如果使用openstack swift作为存储后端,则参数可能如下所示:

registry_storage_provider_name = swift
registry_storage_provider_config = “ username:admin,password:admin_pass,authurl:http:// keystone_addr:35357 / v3 / aut

注意:有关注册表存储后端的详细信息,请参阅“ 

 

3.2 安装主机的先决条件

3.2.1 硬件

资源容量描述
cpu 最小2 cpu 4 cpu是首选
内存 最小4gb 8gb是首选
磁盘 最小40gb 160gb是首选

 

3.2.2 软件

软件描述
python 2.7或更高版本 请注意,您可能必须在linux发行版(gentoo,arch)上安装python,默认情况下不安装python解释器
docker engine 版本1.10或更高版本 有关安装说明,请参阅::
docker compose 版本1.6.0或更高版本 有关安装说明,请参阅::
openssl 最新的是首选 为harbor生成证书和密钥

 

3.2.3 网络端口

端口协议描述
443 https harbor门户和核心api将接受此端口上的https协议请求
4443 https 只有在启用“公证”时才需要连接到dock的docker content trust服务
80 http harbor端口和核心api将接受此端口上的http协议请求

 

3.2.4 添加一块50g 新硬盘(如果磁盘足够,可忽略)

博主也是太长时间没有进行硬盘添加的操作了,熟悉一遍

1)查询添加的磁盘的名字

$ fdisk -l
disk /dev/sdb: 53.7 gb, 53687091200 bytes, 104857600 sectors
units = sectors of 1 * 512 = 512 bytes
sector size (logical/physical): 512 bytes / 512 bytes
i/o size (minimum/optimal): 512 bytes / 512 bytes

 

2)对磁盘进行分区

$ fdisk /dev/sdb
command (m for help): m
command (m for help): n
partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
using default response p
partition number (1-4, default 1): 
first sector (2048-104857599, default 2048): 
using default value 2048
last sector, +sectors or +size{k,m,g} (2048-104857599, default 104857599): 
using default value 104857599
partition 1 of type linux and of size 50 gib is set
command (m for help): w
the partition table has been altered!

calling ioctl() to re-read partition table.
syncing disks.

  

3)磁盘文件格式化

$ [root@centos7-1 ~]# mkfs.ext3 /dev/sdb1

  

4)挂载磁盘

$ vim /etc/fstab    设为开机自动挂载
/dev/sdb1     		/data                   ext3    defaults        0 0
$ mount -a   挂载磁盘

  

5)验证

[root@centos7-1 ~]# df -h /data
filesystem      size  used avail use% mounted on
/dev/sdb1        50g   52m   47g   1% /data

  

3.2.5 安装docker编排工具 docker compose

方案1:直接yum安装

[root@docker2 ~]# yum -y install docker-compose

  

方案2:在github上选择自己需要的版本下载安装

$ curl -l https://github.com/docker/compose/releases/download/1.23.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ docker-compose version
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
cpython version: 3.6.7
openssl version: openssl 1.1.0f  25 may 2017

  

3.4 安装搭建harbor

3.4.1 下载harbor 安装包

资源可以下载的很慢,我已经将1.7.1版本放入我的网盘了,需要的私聊

[root@docker2 ~]# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.1.tgz
[root@docker2 ~]# tar -c /data/ -xvf harbor-offline-installer-v1.7.1.tgz

  

3.4.2 配置harbor 服务

1)修改harbor.cfg 配置文件

[root@docker2 ~]# cd /data/harbor/
[root@docker2 harbor]# grep "^[^#]" harbor.cfg 
_version = 1.7.0
hostname = docker2
ui_url_protocol = http
max_job_workers = 2 
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = na
log_rotate_count = 50
log_rotate_size = 200m
http_proxy =
https_proxy =
no_proxy = 127.0.0.1,localhost,core,registry
email_identity = 
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false
email_insecure = false
harbor_admin_password = harbor12345
auth_mode = db_auth
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid 
ldap_scope = 2 
ldap_timeout = 5
ldap_verify_cert = true
ldap_group_basedn = ou=group,dc=mydomain,dc=com
ldap_group_filter = objectclass=group
ldap_group_gid = cn
ldap_group_scope = 2
self_registration = on
token_expiration = 30
project_creation_restriction = everyone
db_host = postgresql
db_password = along
db_port = 5432
db_user = postgres
redis_host = redis
redis_port = 6379
redis_password = along
redis_db_index = 1,2,3
clair_db_host = postgresql
clair_db_password = along
clair_db_port = 5432
clair_db_username = postgres
clair_db = postgres
clair_updaters_interval = 12
uaa_endpoint = uaa.mydomain.org
uaa_clientid = id
uaa_clientsecret = secret
uaa_verify_cert = true
uaa_ca_cert = /path/to/ca.pem
registry_storage_provider_name = filesystem
registry_storage_provider_config =
registry_custom_ca_bundle =

主要修改了:

  hostname:主机名

  max_job_workers:最大cpu数,小于等于自己服务器的硬件

 

2)定义docker-compose.yml 文件(可省略)

docker-compose.yml 文件是docker 编排时,对容器的一些操作:

端口

ports:

      - 80:80

      - 443:443

      - 4443:4443

众多存储器路径

如:volumes:

      - /data/registry:/storage:z

在生产环境中,尽量将容器的存储卷定义在空间较为充足的磁盘;

自己根据实际情况进行修改;

 

3.4.3 安装启动harbor

[root@docker2 harbor]# ./install.sh 

[step 0]: checking installation environment ...

note: docker version: 18.03.1

note: docker-compose version: 1.23.2

[step 1]: loading harbor images ...
loaded image: goharbor/registry-photon:v2.6.2-v1.7.1
loaded image: goharbor/harbor-migrator:v1.7.1
loaded image: goharbor/harbor-adminserver:v1.7.1
loaded image: goharbor/harbor-core:v1.7.1
loaded image: goharbor/harbor-log:v1.7.1
loaded image: goharbor/harbor-jobservice:v1.7.1
loaded image: goharbor/notary-server-photon:v0.6.1-v1.7.1
loaded image: goharbor/clair-photon:v2.0.7-v1.7.1
loaded image: goharbor/harbor-portal:v1.7.1
loaded image: goharbor/harbor-db:v1.7.1
loaded image: goharbor/redis-photon:v1.7.1
loaded image: goharbor/nginx-photon:v1.7.1
loaded image: goharbor/harbor-registryctl:v1.7.1
loaded image: goharbor/notary-signer-photon:v0.6.1-v1.7.1
loaded image: goharbor/chartmuseum-photon:v0.7.1-v1.7.1


[step 2]: preparing environment ...
generated and saved secret to file: /data/secretkey
generated configuration file: ./common/config/nginx/nginx.conf
generated configuration file: ./common/config/adminserver/env
generated configuration file: ./common/config/core/env
generated configuration file: ./common/config/registry/config.yml
generated configuration file: ./common/config/db/env
generated configuration file: ./common/config/jobservice/env
generated configuration file: ./common/config/jobservice/config.yml
generated configuration file: ./common/config/log/logrotate.conf
generated configuration file: ./common/config/registryctl/env
generated configuration file: ./common/config/core/app.conf
generated certificate, key file: ./common/config/core/private_key.pem, cert file: ./common/config/registry/root.crt
the configuration files are ready, please use docker-compose to start the service.


[step 3]: checking existing instance of harbor ...


[step 4]: starting harbor ...
creating network "harbor_harbor" with the default driver
creating harbor-log ... done
creating registry           ... done
creating harbor-db          ... done
creating registryctl        ... done
creating harbor-adminserver ... done
creating redis              ... done
creating harbor-core        ... done
creating harbor-portal      ... done
creating harbor-jobservice  ... done
creating nginx              ... done

✔ ----harbor has been installed and started successfully.----

now you should be able to visit the admin portal at http://docker2. 
for more details, please visit https://github.com/goharbor/harbor .

  

3.4.3 安装后验证

1)打开了一些端口

[root@docker2 harbor]# ss -nutlp |grep docker
tcp    listen     0      128    127.0.0.1:1514                  *:*                   users:(("docker-proxy",pid=1440,fd=4))
tcp    listen     0      128      :::80                   :::*                   users:(("docker-proxy",pid=2204,fd=4))
tcp    listen     0      128      :::443                  :::*                   users:(("docker-proxy",pid=2192,fd=4))
tcp    listen     0      128      :::4443                 :::*                   users:(("docker-proxy",pid=2181,fd=4))

  

2harbor实际就是启动了一些docker服务

[root@docker2 ~]# docker ps
container id        image                                    command                  created             status                 ports                                                              names
def22a8eeb9a        goharbor/nginx-photon:v1.7.1             "nginx -g 'daemon of…"   2 hours ago         up 2 hours (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
a410a38479fa        goharbor/harbor-portal:v1.7.1            "nginx -g 'daemon of…"   2 hours ago         up 2 hours (healthy)   80/tcp                                                             harbor-portal
e25f87eb80db        goharbor/harbor-jobservice:v1.7.1        "/harbor/start.sh"       2 hours ago         up 2 hours                                                                                harbor-jobservice
2be7211535a2        goharbor/harbor-core:v1.7.1              "/harbor/start.sh"       2 hours ago         up 2 hours (healthy)                                                        

                    

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网