前言:在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、装置dockeryum 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 CEyum 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/hosts192.168.70.128 k8s-master01192.168.70.129 k8s-node01192.168.70.130 k8s-node02192.168.70.131 zjdk.docker.com#你本人的windows零碎中C:\Windows\System32\drivers\etc #前期应用域名拜访harbor192.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.comUsername: adminPassword: 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.comUsername: adminPassword: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin 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 imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 519e12e2a84a 3 days ago 133MBzjdk.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:v1The 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
完结撒花。