实验一:Docker 仓库之单机 Docker Registry
102
下载Docker Registry镜像
~# docker pull registry
搭建单机仓库
#创建目录
~# mkdir /docker/auth -pv
~# cd /docker/
1.创建用户并生成密码
docker run --entrypoint htpasswd registry -Bbn jack 123546 > auth/htpasswd
上述有报错,新版本docker已不支持,改为:
docker run --entrypoint htpasswd httpd:2 -Bbn jack 123456 > auth/htpasswd
2.验证密码信息
cat auth/htpasswd
jack:$2y$05$amX9iLagtwli3Bfuaq4LIegVSM6d7OkrbgpXdP.Q3/Qyquwdukaku
3.启动registry
docker run -d -p 5000:5000 --name registryl \
-v /docker/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry
101
更改配置文件
#结尾添加"非安全的 IP地址\域名"
vim /lib/systemd/system/docker.service
...
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.37.102:5000
...
从新加载docker
systemctl daemon-reload
systemctl restart docker
登录后、可上传镜像或下载镜像
docker login 192.168.37.102:5000
Username: jack
Password: 密码:123456
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
# 查看镜像
docker images
#打包镜像
docker tag haproxy:2.0.30-centos 192.168.37.102:5000/linux00/haproxy:2.0.30-centos
#上传镜像
docker push 192.168.37.102:5000/linux00/haproxy:2.0.30-centos
#下载镜像
docker pull 192.168.37.102:5000/linux00/haproxy:2.0.30-centos
docker仓库之分布式 Harbor
Harbor 是一个用户存储和分发 Docker 镜像的企业级 Registry 服务器,由vmware 开源,其通过添加一些企业必须的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业私有 Registry 服务器,Harbor 提供了更换的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控,另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
官方地址:vmware.github.io/harbor/cn/
官方github地址:github.com/vmware/harb…
harbor 官方地址:github.io/
Harbor
基于角色的访问控制:用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
镜像复制:镜像可以在多个 Registry 实例中复制(同步)。尤其适用于负载均衡,高可用,混合云和多云的场景。
图形化用户界面:用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
AD/LADP支: Harbor 可以集成企业内部已有的 AD/LADP,用于鉴权认证管理。
审计管理: 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
国际化: 已用于英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
RESTful API-RESTful API: 提供给管理员用于对 Harbor 更多的操控,使得与其它管理软件集成变得更容易。
部署简单: 提供在线和离线两种安装工具,也可以安装到 vSphere 平台(OVA 方式)虚拟设备。
实验二:Harbor介绍及Harbor单机部署使用
103
步骤:
1. 安装docker
2. 安装docker-compose
3. 部署Harbor
4. 配置lib/systemd/system/docker.service
└─ --insecure-registry image.harbor.com
5. 重启Docker服务
6. 登录
安装Docker脚本
vim docker-install.sh
#!/bin/bash
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#安装docker
apt install docker-ce-cli=5:19.03.9~3-0~ubuntu-bionic docker-ce=5:19.03.9~3-0~ubuntu-bionic -y
软件包:harbor-offline-installer或到github.com/goharbor/ha…
cd /usr/local/src/
#解压缩
tar xvf harbor-offline-installer-v1.10.15.tgz
cd harbor/
修改文件
vim harbor.yml
...
hostname: image.harbor.com <--
#注释掉
#https:
# https port for harbor, default is 443
# port: 443
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path
...
修改本机hosts文件
#此时会报错
./install.sh
apt install -y python3-pip
pip3 install --upgrade pip
pip3 install docker-compose
仓库docker-compose版本
docker-compose --version
./install.sh
浏览器访问192.168.37.103或image.harbor.com
创建目录
101
vim /lib/systemd/system/docker.service
...
#修改信息
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.37.102:5000 --insecure-registry image.harbor.com
...
systemctl daemon-reload
systemctl restart docker
#添加域名解析
vim /etc/hosts
192.168.37.103 image.harbor.com
登录
docker login image.harbor.com
Username: admin 账号:admin
Password: 密码:Harbor12345
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
101
上传镜像
docker tag nginx:1.18.0-alpine image.harbor.com/linux00/nginx:1.18.0-alpine
docker push image.harbor.com/linux00/nginx:1.18.0-alpine
104
- 修改hosts文件、添加域名解析
vim /etc/hosts
192.168.37.103 image.harbor.com <--
- 修改配置文件(非安全镜像仓库)
vim /lib/systemd/system/docker.service
...
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.37.102:5000 --insecure-registry image.harbor.com
...
- 重启服务
systemctl daemon-reload && systemctl restart docker
- 拉取镜像(不需要登录账号密码)
docker pull image.harbor.com/linux00/nginx:1.18.0-alpine
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
image.harbor.com/linux00/nginx 1.18.0-alpine 408efcdec3b3 32 hours ago 245MB