Docker仓库

官方docker仓库使用

网址:https://hub.docker.com

每个注册用户都可以上传和管理自己的镜像

用户登录

上传镜像前需要登陆,登陆后生成~/.docker/config.json文件保存验证信息
docker login

给本地镜像打标签

上传本地镜像前必须先给上传的镜像用docker tag命令打标签
标签格式: docker.io/用户账号/镜像名:TAG

docker tag alpine:3.11 docker.io/sdada/alpine:3.11-v1

 上传本地镜像至官网

docker push  docker.io...
注:若tag省略,将上传指定REPOSITORY的所有版本

下载上传的镜像

docker pull ....

使用组织管理镜像

组织类似名称空间,每个组织的名称全网站唯一,一个组织可以有多个用户账户使用,并可以指定不同用户对组织仓库不同的权限

三种不同权限:
Read-only
Read&Write
Admin

创建组织、创建组织内的团队、分配权限

在官方网页进行即可

私有云单机仓库Docker Registry

下载docker registry镜像

docker pull
网址:https://github.com/docker/distribution

搭建单机仓库

创建授权用户密码使用目录

mkdir -p /etc/docker/auth

创建授权的rigistry用户和密码

apt -y install apache2-utiles
htpasswd -Bbn sada 123456 > /etc/docker/auth/registy

启动docker registry容器

docker run -d -p 5000:5000 --restart=always --name registry
-v /etc/docker/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e
"REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e
REGISTRY_AUTH_HTPASSWD_PATH=/auth/registry registry:2.7.1

登陆仓库

注:直接登陆会报错,docker login默认使用https登陆,而docker registry为http,所以默认登陆失败
将registry仓库服务器地址加入service单元文件
修改配置让docker login支持http协议

vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 
--insecure-registry 10.0.0.100:5000

或修改下面文件

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"],
  "insecure-registries": ["10.0.0.100:5000"]
}

重启配置文件
systemctl daemon-reload
systemctl restart docker

上传获取镜像文件与官方库操作类似

注:docker.io改为IP:port

Docker之分布式仓库Harbor

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。Harbor支持安装在多个Registry节点的镜像资源复制

harbor是由很多容器组成实现完整功能
Proxy:对应的启动组件nginx。一个nginx反向代理,代理Notary client、Docker client和浏览器的访问请求给后端的各服务
UI:对应启动组件harbor-ui。底层数据存储使用mysql数据库,主要提供了四个子功能:UI(web管理页面)、API(Harbor暴露的API服务)、Auth(用户认证服务)、Token服务
Registry:对应启动组件registry
Admin Server:对应启动组件harbor-adminserver。是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候需要加载adminserver的配置
Job Service:对应启动组件harbor-jobservice。负责镜像复制工作的
Log Collector:对应启动组件harbor-log。日志汇总组件,通过docker的log-driver把日志汇总
DB:对应启动组件harbor-db,负责存储metadata数据

安装Harbor

安装docker

先安装docker compose

docker compose必须先于harbor安装
https://mp.csdn.net/mp_blog/creation/editor/135069654

下载Harbor安装包并解压缩

方法1:下载离线完整安装包

wget https://storage.googleapis.com/harbor-releases/release-
1.7.0/harbor-offline-installer-v1.7.6.tgz

方法2:下载在线安装包,比较慢

wget https://storage.googleapis.com/harbor-releases/release-
1.7.0/harbor-online-installer-v1.7.6.tgz

编辑配置文件 harbor.cfg

vim /apps/harbor/harbor.cfg
hostname=   修改此行,指向当前主机IP或FQDN
harbor_admin_password=   修改此行指定harbor登录用户admin的密码

实现开机自动启动harbor9

方法1:通过service文件实现
方法2:通过rc.local实现

cat /etc/rc.local
#! /bin/bash
cd /apps/harbor
/usr/bin/docker-compose up

使用单主机harbor

建立项目

harbor上必须先建立项目,才能上传镜像

命令行登陆harbor

方法1:修改service文件

vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 
--insecure-registry 10.0.0.101 --insecure-registry 10.0.0.102

方法2:修改daemon.json

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"],
  "insecure-registries": ["10.0.0.101:80","10.0.0.102:80"]  
}

给本地镜像打标签并上传到harbor

格式:Harbor主机IP/项目名/image名:版本

下载harbor的镜像

注:下载镜像前必须修改docker的service文件,加入harbor服务器的地址才可以下载
与命令行登陆harbor修改service文件或daemon.json相同

修改harbor配置

修改harbor.cfg文件

实现harbor高可用

Harbor支持基于策略的Docker镜像复制功能,这类似于MySQL的主从同步
方法1:基于共享存储
方法2:基于镜像复制

harbor安全https配置

harbor默认使用http,为了安全,可以使用https

实现Harbor的https认证

安装docker
安装docker compose
下载harbor离线安装包且解压缩
生成私钥和证书

touch /root/.rnd
mkdir /apps/harbor/certs/
cd /apps/harbor/certs

生成CA证书
openssl req -newkey rsa:4096 -nodes -sha256 -keyout 
ca.key -x509 -subj "...." -days 365 -out ca.crt
生成harbor主机的证书申请
openssl req -newkey rsa:4096 -nodes -sha256 -subj 
"....." -keyout harbor.org.key -out harbor.org.csr
给harbor主机颁发证书
openssl x509 -req -in harbor.org.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.org.crt



vim /apps/harbor/harbor.cfg
hostname = harbor.org
ui_url_protocol = https
ssl_cert = /apps/harbor/certs/harbor.org.crt
ssl_cert_key = /apps/harbor/certs/harbor.org.key
harbor_admin_password = 123456
客户端下载CA的证书

直接登陆上传下载镜像会报错

mkdir -pv /etc/docker/certs.d/harbor.org/
scp -r harbor.org:/apps/harbor/certs/ca.crt  /etc/docker/certs.d/harbor.org/

你可能感兴趣的:(docker,docker,容器,运维)