前言:在 k8s 学习过程中,咱们还须要一个要害的工具就是 docker harbor,他是咱们本人得公有仓库,能够了解成阿里云镜像仓库。
装置 docker
咱们先理解 docker-io,docker-ce,docker-ee 区别。
- docker-io 是以前晚期的版本,centos7 yum install docker - y 默认 装置的是 docker-io,最新版是 1.13。
- docker-ce 是社区版本,简略了解是收费应用,提供小企业与小的 IT 团队应用
- docker-ee 的企业版,实用于企业级开发,同样也实用于开发、散发和运行商务级别的利用的 IT 团队。付费。
在这里 docker harbor 不能通应用 yum 进行装置 docker,否则会报错下边谬误,咱们须要装置 docker-ce
[root@zjdk harbor]# ./install.sh
[Step 0]: checking if docker is installed ...
✖ Need to upgrade docker package to 17.06.0+.
如果你的服务器 yum 形式装置的 docker,请用下边形式进行卸载。
yum remove docker docker-common docker-selinux docker-engine -y
重新安装 docker-ce
#1、装置 docker
yum install -y yum-utils device-mapper-persistent-data lvm2
#紧接着配置一个稳固(stable)的仓库、仓库配置会保留到 /etc/yum.repos.d/docker-ce.repo 文件中
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#更新 Yum 装置的相干 Docke 软件包 & 装置 Docker CE
yum update -y && yum install docker-ce -y
#2、设置 docker daemon 文件
#创立 /etc/docker 目录
mkdir /etc/docker -p
#更新 daemon.json 文件
cat > /etc/docker/daemon.json <<EOF
{"registry-mirrors":["https://pee6w651.mirror.aliyuncs.com"],
"insecure-registries": ["https://zjdk.docker.com"]
}
EOF
#留神:肯定留神编码问题,呈现谬误:查看命令:journalctl -amu docker 即可发现错误
#创立,存储 docker 配置文件
mkdir -p /etc/systemd/system/docker.service.d
#3、从新加载 重启 docker 服务 开启自启动
systemctl daemon-reload && systemctl restart docker && systemctl enable docker
装置 docker compose
装置须要的材料 docker harbor 和 compose
https://pan.baidu.com/s/1uKm2…
提取码:【zjdk】
# 在线下载 docker-compose ,harbor 须要借助 docker-compose 装置
#装置依赖包
yum -y install yum-utils device-mapper-persistent-data lvm2
#复制官网上的上述命令
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#赋予该命令执行权限
chmod u+x /usr/local/bin/docker-compose
#查看其版本信息
docker-compose -version
docker-compose version 1.24.1, build 4667896b
############## 个别下载肯可能会有问题,咱们能够采纳离线装置,当前遇到相似的都能够采纳离线装置)#########
#离线装置
#上传本地文件,材料曾经筹备,在本地文件夹
#把本地文件拷贝到 /usr/local/bin 目录下
mv docker-compose /usr/local/bin/
#受权:能够执行
chmod 755 /usr/local/bin/docker-compose
#查问 docker 版本 会看到对应版本号
docker-compose -version
装置 docker harbor
咱们能够通过官网能够下载本人喜爱的版本。
# 追加 ip:hostname 到每 k8s 一台机器节点;
echo "192.168.70.131 zjdk.docker.com" >> /etc/hosts
#查问 harbor 服务节点 /etc/hosts
192.168.70.128 k8s-master01
192.168.70.129 k8s-node01
192.168.70.130 k8s-node02
192.168.70.131 zjdk.docker.com
#你本人的 windows 零碎中 C:\Windows\System32\drivers\etc
#前期应用域名拜访 harbor
192.168.70.131 zjdk.docker.com
#将下载的安装包解压到指定目录
tar zxf harbor-offline-installer-v1.10.6.tgz -C /usr/local
#切换至解压后的目录中
cd /usr/local/harbor/
#编辑这个配置文件
vim harbor.yml
..............# 省略局部内容
#将 hostname 更改为本机 IP 域名
hostname = zjdk.docker.com
#这行指定的是登录 harbor 的登录名及明码
#默认用户为“admin”,明码为“Harbor12345”harbor_admin_password = Harbor12345
# 证书配置
certificate: /data/cert/server.crt
private_key: /data/cert/server.key
..............# 省略局部内容
# 证书装置
请参考我上一篇文章
#执行自带的装置脚本,装置结束,浏览器即可拜访
./install.sh
完结撒花。
新建我的项目
1. 首先登录 用户名称 admin 明码 Harbor12345(如果你没有在配置文件批改的话)
2. 创立我的项目
上传镜像
咱们能够去到咱们 k8s master 或者 node 上进行退送镜像试验
1. 先登录
[root@k8s-master01 ~]# docker login https://zjdk.docker.com
Username: admin
Password:
Error response from daemon: Get https://zjdk.docker.com/v1/users/: x509: certificate is valid for cer.com, not zjdk.docker.com
上述问题是因为咱们没有在 daemon.json 文件种配置私仓地址。咱们手动增加一下这个。如果是 mac 电脑除了命令行要加,你的 docker 客户端种也要增加。
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"],
"insecure-registries": ["https://zjdk.docker.com"]
从新加载 docker,并重启
systemctl daemon-reload && systemctl restart docker
在次登录
[root@k8s-master01 ~]# docker login https://zjdk.docker.com
Username: admin
Password:
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
舒适提醒:如果你第二天机器是应用 yum 装置的 docker 而不是 docker-ce 装置,那么你即便改了 daemon.json 也有可能报 x509;解决办法装置上边的形式卸载重新安装 docker-ce。
对于这种重新安装的 docker 可能会呈现的 docker images 显示镜像然而镜像没有任何作用,应用的时候提醒如下
Error response from daemon: No such image: nginx:latest;# 删除 /var/lib/docker/image/overlay2/imagedb/content/sha256 目录下相应的镜像文件即可
rm -rf /var/lib/docker/image/overlay2/imagedb/content/sha256/ 对应的镜像
2. 给镜像打 tag
# 你的镜像:你的版本
# docker tag SOURCE_IMAGE[:TAG] zjdk.docker.com/zjdk/IMAGE[:TAG]
[root@k8s-master01 sha256]# docker tag nginx zjdk.docker.com/zjdk/nginx:v1
[root@k8s-master01 sha256]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 519e12e2a84a 3 days ago 133MB
zjdk.docker.com/zjdk/nginx v1 519e12e2a84a 3 days ago 133MB
3. 将镜像推送到近程仓库
# docker push zjdk.docker.com/zjdk/IMAGE[:TAG]
[root@k8s-master01 sha256]# docker push zjdk.docker.com/zjdk/nginx:v1
The push refers to repository [zjdk.docker.com/zjdk/nginx]
7703406462db: Pushed
962b263b732e: Pushed
097985a72f15: Pushed
a433210552af: Pushed
47ba6c704819: Pushed
7e718b9c0c8c: Pushed
v1: digest: sha256:8e2bc905e7d89b592beabb816913bab7894afdd067efcb5a1d2f7bd54e3853e0 size: 1570
完结撒花。