尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
docker-k8s安装实践记录
一、在线安装docker、harbor在线安装docker# 安装yum工具集yuminstall-yyum-utils# 安装docker源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 更新yum缓存yum makecache fast# 安装dockeryuminstall-ydocker-ce# 启动dockersystemctl startdocker# 设置docker开机自启动systemctlenabledocker# 验证dockerversion注1运行“sudo docker run hello-world”时报错docker: Error response from daemon。解决方法docker默认的源为国外官方源下载速度较慢可修改docker镜像源为国内:[rootlocalhost]# vim /etc/docker/daemon.json{registry-mirrors:[https://registry.docker-cn.com,http://hub-mirror.c.163.com]}重启docker:# systemctl restart docker注2非root用户解决运行docker命令时Get Permission Denied问题方法1 使用sudo获取管理员权限运行docker命令方法2 创建docker用户组并将当前用户加入到docker用户组中那么当前用户就有权限访问Unix socket了进而也就可以执行docker相关命令sudogroupadddocker#添加docker用户组sudogpasswd-a$USERdocker#将登陆用户加入到docker用户组中newgrpdocker#更新用户组dockerps#测试docker命令是否可以使用sudo正常使用安装docker-compose# 安装 EPEL 软件包sudoyuminstallepel-release# 安装pipsudoyuminstall-ypython-pip# 升级pipsudopipinstall--upgradepip# 安装docker-composesudopipinstalldocker-compose注安装docker-compose时报错(sudo pip install docker-compose时)ERROR: Cannot uninstallsubprocess32.It is a distutils installed project and thus we cannot accurately determinewhichfiles belong to itwhichwould lead to only a partial uninstall.解决# 搜索subprocess32-3.2.6-py2.7.egg-info文件sudofind/-name*subpro*.egg-info# 删除rm-rf/usr/lib64/python2.7/site-packages/subprocess32-3.2.6-py2.7.egg-info错误ERROR: Cannot uninstallrequests.It is a distutils installed project and thus we cannot accurately determinewhichfiles belong to itwhichwould lead to only a partial uninstall.解决# 搜索requests-2.6.0-py2.7.egg-info文件sudofind/-name*requests*.egg-info# 删除rm-rf/usr/lib/python2.7/site-packages/requests-2.6.0-py2.7.egg-inf重新安装sudopipinstalldocker-compose安装Harbor3.1下载并解压harbor安装包# wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.3.tgz# tar -zxvf harbor-offline-installer-v1.5.3.tgz #解压离线安装包# mv harbor /opt/ #移到/opt目录下# cd /opt/harbor #进入到/opt/harbor目录# ll #查看目录内容3.2修改配置文件# vim harbor.cfg #编辑配置文件hostname localhost #修改harbor的启动ip这里需要依据系统ip设置harbor_admin_password admin #修改harbor的admin用户的密码3.3安装启动harbor./prepare#配置Harbor./install.sh#安装Harbor3.4登录验证二、离线安装k8s注用离线安装的docker在初始化k8s时报错尚未解决。用上述方式在线安装docker准备安装包离线安装包制作教程https://www.jianshu.com/p/93e7cb4da070离线安装包部署教程https://www.jianshu.com/p/fd9f1076ea2dx86 包k8sOfflineSetup_x86_64-k8sv1.23.1.ziphttp://192.168.4.141:50075/webhdfs/v1/k8s/k8sOfflineSetup_x86_64-k8sv1.23.1.zip?opOPENnamenoderpcaddressjxbdnamenodeoffset0arm64 包k8sOfflineSetup_arm64-k8sv1.23.1.ziphttp://192.168.4.141:50075/webhdfs/v1/k8s/k8sOfflineSetup_arm64-k8sv1.23.1.zip?opOPENnamenoderpcaddressjxbdnamenodeoffset02.解压、配置、安装将对应的zip包解压然后把里面的k8sOfflineSetup移到服务器/root目录下注意必须是root目录下master节点部署# master节点部署chmodx-R/root/k8sOfflineSetup# 填写环境变量exportHOSTNAMEk8s-master(hostname主机名根据需要调整)exportMASTER_IP192.168.1.30(master主机ip)exportPOD_SUBNET192.11.0.0/16(pod网段可使用该网段值)exportSERVICE_SUBNET192.96.0.0/16(service cluster网段可使用该网段值)exportSETUP_DOCKERyes(是否安装dockeryes安装no不安装前提是机器必须已经安装了docker,建议yes使用本安装包进行安装docker)exportDOCKER_DIR/var/lib/docker docker镜像存储路径若不设置 默认是存放在/var/lib/docker下建议修改(该选项在SETUP_DOCKERyes才有效)# 开始部署安装cd/root/k8sOfflineSetup ./setup_master.sh# 等待其自动部署完毕后即可访问kuboardhttp://ip:30080# 登录账号密码是: admin/Kuboard123# 在 master 节点执行获取token和证书下面安装worker有用kubeadm token create --print-join-command注意MASTER_IP需要根据机器的ip地址进行设置。worker节点部署# worker节点部署chmodx-R/root/k8sOfflineSetup# 填写环境变量exportHOSTNAMEk8s-worker1(hostname主机名根据需要调整)exportMASTER_IP192.168.1.30(master主机ip)exportTOKENedz861.g6eci15slbefibj8(master输出的token)exportCERTsha256:23a7e1b4...(master输出的cert)exportSETUP_DOCKERyes(是否安装dockeryes安装no不安装前提是机器必须已经安装了docker,建议yes使用本安装包进行安装docker)exportDOCKER_DIR/var/lib/docker docker镜像存储路径若不设置 默认是存放在/var/lib/docker下建议修改(该选项在SETUP_DOCKERyes才有效)# 开始部署安装cd/root/k8sOfflineSetup ./setup_worker.sh注意MASTER_IP 需要根据master节点的ip进行设置。TOKEN,CERT由master节点通过kubeadm token create --print-join-command命令生成。生产环境开通端口控制平面节点master协议方向端口范围作用使用者TCP入站6443Kubernetes API 服务器所有组件TCP入站2379-2380etcd 服务器客户端 APIkube-apiserver, etcdTCP入站10250Kubelet APIkubelet 自身、控制平面组件TCP入站10251kube-schedulerkube-scheduler 自身TCP入站10252kube-controller-managerkube-controller-manager 自身工作节点worker协议方向端口范围作用使用者TCP入站10250Kubelet APIkubelet 自身、控制平面组件TCP入站30000-32767NodePort 服务†所有组件† NodePort 服务 的默认端口范围。使用 * 标记的任意端口号都可以被覆盖所以你需要保证所定制的端口是开放的。虽然控制平面节点已经包含了 etcd 的端口你也可以使用自定义的外部 etcd 集群或是指定自定义端口。你使用的 Pod 网络插件 (见下) 也可能需要某些特定端口开启。由于各个 Pod 网络插件都有所不同 请参阅他们各自文档中对端口的要求。3.开通端口# vi /etc/kubernetes/manifests/kube-apiserver.yaml然后在Command下增加以下配置- --service-node-port-range1-65535然后wq保存。 这个时候 k8s会自动重启要等待一段时间。直到你在服务器上敲入以下命令kubectl get all -n kube-system 所有状态都为running之后。就可以了但页面上还是会显示30000-32767这个不管他你照样设置想要的端口是可以保存成功的4…k8s关闭重启k8s关闭k8s开启servicedockerstopservicedockerstartservicedockerrestart直接 service docker stop 就能把k8s关了如果要开启k8s则 service docker start 机器重启之后输入 service docker restart 就能把k8s启动连通你部署在k8s上自己的服务都会自动启动。三、镜像打包docker将镜像推到私库1.打标签dockertag 镜像名字:镜像版本号 harbor地址/仓库名字/镜像名字:镜像版本号2.推送dockerpush harbor地址/仓库名字/镜像名字:镜像版本号四、docker常用操作命令1.帮助启动类命令1、启动命令systemctl start docker2、停止命令systemctl stop docker3、重启命令systemctl restart docker查看docker状态命令systemctl status docker开机启动命令systemctl enable docker查看docker概要信息命令docker info查看docker整体帮助文档命令docker --help查看docker命令帮助文档命令docker 具体命令 --help2.镜像命令1、列出本地主机上的镜像展示的是一个列表表头含义如下repository表示镜像的仓库源tag镜像的标签images ID镜像IDcreated镜像创建时间size镜像大小命令docker images-a列出本地所有镜像包括历史镜像-q只显示镜像ID2、某个×××镜像名字展示的是一个列表表头含义如下name镜像名称description镜像说明stars点赞数量official是否是官方的automated是否是自动构建的命令docker search–limit只列出N个镜像默认为25个–limit 5 redis只列出5个redis3、下载镜像命令docker pull 某个×××镜像名字有两种命令a.docker pull 镜像名字[:TAG]b.docker pull 镜像名字 没有tag就是最新版等价于。4、查看镜像/容器/数据卷所占的空间命令docker system df5、删除某个×××镜像名字ID这里就不展示删除了命令docker rmi删除单个命令docker rmi -f 镜像ID删除多个命令docker rmi -f 镜像名1TAG镜像名2TAG删除全部命令docker rmi -f $(docker images -qa)3.容器命令1、新建启动容器命令docker [options] image [command] [ARG…]启动交互式容器前端服务器–name“容器新名字”-d后台运行容器启动交互式命令docker run -it-i以交互模式运行容器 interactive-t为容器重新分配一个为输入终端 tyy前台有伪终端等待交互命令docker run -it Ubuntu bash/binP随机终端口映射大写Pp指定终端口映射小写p常用此写法。2、列出当前所运行的容器命令docker -ps [options]常用命令docker-ps-a列出当前所有正在运行的容器历史上运行过的docker-ps-l显示最近创建的容器docker-ps-q静默模式只显示容器ID3、退出容器有两种退出命令这里不做展示。a.exitrun进去容器exit推出容器停止。b.ctrlpqrun进去容器ctrlpq退出容器不停止。4、启动已经停止的容器命令docker start 容器ID或容器名5、重启容器命令docker restart 容器ID或容器名6、停止容器命令docker stop 容器ID或容器名7、强制停止容器命令docker kill 容器ID或容器名8、删除已停止的容器命令如下dockerrm容器ID先停下来再删除dockerrm-f容器ID/容器名 强制删除一次性删除多个容器实例docker rm -f $(docker ps -a -q)dockerps-a-q|xargsdockerrm9、启动守护式容器后台服务器命令docker run -d 容器名dockerrun-itredis6.0.8 前台交互式启动启动镜像命令docker run -it 容器id /bin/bashdockerrun-dredis6.0.8 后台守护式启动10、查看容器日志命令docker logs 容器ID11、查看容器内运行的进程命令docker top 容器ID12、查看容器内部进程命令docker inspect 容器ID13、进入正在运行的容器并进行命令交互命令docker exec -it 容器ID bashshell重新进入命令docker attach 容器IDattach直接进入容器启动命令的终端不会启动新的进程用exit退出会导致容器停止。exec是在容器中打开新的终端不会启动新的进程用exit退出不会导致容器终止一般推荐使用这一种。14、从文件拷贝内容到主机上命令docker cp 容器ID容器内路径目的主机路径15、导出和导入容器。export导出容器的内容留作为一个tar归档文件对应import命令。import从tar包中的内容创建一个新的文件系统再导入为镜像对应export命令。案例dockerexport容器ID文件名.tarcat文件名.tar|dockerimport-镜像用户/镜像名镜像版本号4.外网联通的情况下安装vim命令1、apt-get update2、apt-get-yinstallvim五、镜像打包
RELATED

相关推荐

没有项目管理经验可以考PMP吗

没有项目管理经验可以考PMP吗

完全没有任何项目领导经验,不能报考 PMP;但不一定非要岗位叫 “项目经理”,只要你在项目里做过统筹、规划、协调、交付这类「领导 / 指导项目」的工作,就算有效经验。PMP 官方报考条件(国内现行)同时还需要…

📅 2026/9/25 21:16:52
元器猫硬件笔记:P沟道MOSFET NCE4435沟槽工艺国产化替代与实测验证

元器猫硬件笔记:P沟道MOSFET NCE4435沟槽工艺国产化替代与实测验证

在智能硬件、消费电子电源保护电路设计中,进口MOSFET器件普遍存在交期不稳定、价格上浮、供应链受限等问题。在智能锁电源保护电路项目迭代中,原进口SI4435DY器件采购成本持续上涨、交付周期大幅延长,亟需一款可引脚兼容、性能对等的国产替代…

📅 2026/9/25 21:16:52
【八八股股 | 第二篇】Java注解原理

【八八股股 | 第二篇】Java注解原理

Java 注解的运行原理:从定义到运行时读取 文章摘要 Java 注解用于把元数据附加到类、方法、字段等程序结构上。本文以 JDK 8 为基础,沿着一条连续的示例说明注解成员如何声明和赋值、RetentionPolicy 如何决定注解的保留范围、javac 如何把注解写入 Cl…

📅 2026/9/25 21:16:52
MORE NEWS

更多资讯

📰

大模型产品负责人的真实压力与破局路径

我无法根据您提供的输入内容生成符合要求的博文。原因如下:项目标题“Qwen新1号位首次亮相,刘大一恒能否顶住压力?”属于人物动态类媒体话题,明显指向某次公开活动、组织任命或行业报道中的角色更替事件;但项目正文为空…

📰

未来十年就业率高的四大专业方向:AI、医疗、新能源与智能制造

每年填报季还没到,我就开始收到朋友和读者家长的消息,问的基本都是同一句话:哪个专业以后好找工作,你给个准话。这类问题我一般不会一上来就报专业名字,而是会先反问三个问题:孩子数学和物理能扛到什么程度…

📰

BP-Adaboost:用BP神经网络作为弱学习器的集成方法

简介:本资源是一个基于C#实现的BP-AdaBoost集成学习算法项目,面向机器学习初学者与Windows平台开发者,聚焦于强分类器构建与预测任务,特别适用于皮肤病变等二分类场景的建模实践。压缩包共46个文件,包含7个C源码&#…

📰

Java核心基础拆解:从JDK配置到高频面试题的系统学习路线

1. 把Java核心基础拆开看:它在学什么,为什么面试总绕不开先说个我观察到的现象:只要你在搜索引擎里敲下“Java”三个字,下拉联想永远是“Java基础”“Java面试题”“Java学习路线”“Java八股文”这几个词轮番出现。这说明什么&am…

📰

人才盘点岗位能力拆解:数据分析、九宫格模型和Excel的优先级怎么排

截至2026年9月秋招季,人才盘点岗位对校招生的硬性能力门槛是Excel数据处理加对九宫格、360评估等方法论的基本理解,数据分析能力是面试中区分度最高的考察项,直接问工具操作细节的面试题正在增多。 智联招聘2026年9月发布的一份组织发展管培生…

📰

旅游社交小程序源码实战:从部署排错到答辩改造的毕业设计指南

简介:这是一份面向计算机相关专业毕业设计的旅游社交小程序完整源码,基于Java后端与Vue前端技术栈,涵盖用户社交、景点推荐、游记发布等典型模块,经导师指导并获98分评价,适合需要项目实战练习或完成课程设计的学生参考…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬