2025年docker版本怎么看(查看docker-compose版本)

docker版本怎么看(查看docker-compose版本)作者个人研发的在高并发场景下 提供的简单 稳定 可扩展的延迟消息队列框架 具有精准的定时任务和延迟队列处理功能 自开源半年多以来 已成功为十几家中小型企业提供了精准定时调度方案 经受住了生产环境的考验 为使更多童鞋受益 现给出开源框架地址 https github com sunshinelyz mykit delay PS 欢迎各位 Star 源码 也可以 pr 你牛逼哄哄的代码 最近在

大家好,我是讯享网,很高兴认识大家。



作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:

https://github.com/sunshinelyz/mykit-delay

PS: 欢迎各位Star源码,也可以pr你牛逼哄哄的代码。

最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑。目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 文章和搭建环境所需要的yml文件已收录到:https://github.com/sunshinelyz/technology-binghe 和 https://gitee.com/binghe001/technology-binghe 。如果文件对你有点帮助,别忘记给个Star哦!

在各服务器执行如下命令。

将binghe102和binghe103服务器上的id_rsa.pub文件复制到binghe101服务器。

在binghe101服务器上执行如下命令。

然后将authorized_keys文件分别复制到binghe102、binghe103服务器。

删除binghe101节点上~/.ssh下的102和103文件。

需要在每台服务器上安装JDK环境。到Oracle官方下载JDK,我这里下的JDK版本为1.8.0_202,下载后解压并配置系统环境变量。

接下来,配置系统环境变量。

配置项内容如下所示。

接下来执行如下命令使系统环境变量生效。

到Apache官方下载Maven,我这里下载的Maven版本为3.6.3。下载后直接解压并配置系统环境变量。

接下来,就是配置系统环境变量。

配置项内容如下所示。

接下来执行如下命令使系统环境变量生效。

接下来,修改Maven的配置文件,如下所示。

将Maven下载的Jar包存储到/home/repository目录下。

本文档基于Docker 19.03.8 版本搭建Docker环境。

在所有服务器上创建install_docker.sh脚本,脚本内容如下所示。

在每台服务器上为install_docker.sh脚本赋予可执行权限,并执行脚本即可。

注意:在每台服务器上安装docker-compose

1.下载docker-compose文件

2.为docker-compose文件赋予可执行权限

3.查看docker-compose版本

本文档基于K8S 1.8.12版本来搭建K8S集群

安装K8S基础环境

在所有服务器上创建install_k8s.sh脚本文件,脚本文件的内容如下所示。

在每台服务器上为install_k8s.sh脚本赋予可执行权限,并执行脚本即可。

初始化Master节点

只在binghe101服务器上执行的操作。

1.初始化Master节点的网络环境

注意:下面的命令需要在命令行手动执行。

2.初始化Master节点

在binghe101服务器上创建init_master.sh脚本文件,文件内容如下所示。

赋予init_master.sh脚本文件可执行权限并执行脚本。

3.查看Master节点的初始化结果

(1)确保所有容器组处于Running状态

具体执行如下所示。

(2) 查看 Master 节点初始化结果

具体执行如下所示。

初始化Worker节点

1.获取join命令参数

在Master节点(binghe101服务器)上执行如下命令获取join命令参数。

具体执行如下所示。

其中,有如下一行输出。

这行代码就是获取到的join命令。

注意:join命令中的token的有效时间为 2 个小时,2小时内,可以使用此 token 初始化任意数量的 worker 节点。

2.初始化Worker节点

针对所有的 worker 节点执行,在这里,就是在binghe102服务器和binghe103服务器上执行。

在命令分别手动执行如下命令。

具体执行如下所示。

根据输出结果可以看出,Worker节点加入了K8S集群。

注意:kubeadm join…就是master 节点上 kubeadm token create 命令输出的join。

3.查看初始化结果

在Master节点(binghe101服务器)执行如下命令查看初始化结果。

具体执行如下所示。

注意:kubectl get nodes命令后面加上-o wide参数可以输出更多的信息。

1.Worker节点故障不能启动

Master 节点的 IP 地址发生变化,导致 worker 节点不能启动。需要重新安装K8S集群,并确保所有节点都有固定的内网 IP 地址。

2.Pod崩溃或不能正常访问

重启服务器后使用如下命令查看Pod的运行状态。

发现很多 Pod 不在 Running 状态,此时,需要使用如下命令删除运行不正常的Pod。

注意:如果Pod 是使用 Deployment、StatefulSet 等控制器创建的,K8S 将创建新的 Pod 作为替代,重新启动的 Pod 通常能够正常工作。

注意:在Master节点(binghe101服务器上执行)

1.创建ingress-nginx命名空间

创建ingress-nginx-namespace.yaml文件,文件内容如下所示。

执行如下命令创建ingress-nginx命名空间。

2.安装ingress controller

创建ingress-nginx-mandatory.yaml文件,文件内容如下所示。

执行如下命令安装ingress controller。

3.安装K8S SVC:ingress-nginx

主要是用来用于暴露pod:nginx-ingress-controller。

创建service-nodeport.yaml文件,文件内容如下所示。

执行如下命令安装。

4.访问K8S SVC:ingress-nginx

查看ingress-nginx命名空间的部署情况,如下所示。

在命令行服务器命令行输入如下命令查看ingress-nginx的端口映射情况。

具体如下所示。

所以,可以通过Master节点(binghe101服务器)的IP地址和30080端口号来访问ingress-nginx,如下所示。

也可以在浏览器打开http://192.168.175.101:30080 来访问ingress-nginx,如下所示。

注意:在Master节点(binghe101服务器上执行)

1.创建k8s-ops命名空间

创建k8s-ops-namespace.yaml文件,文件内容如下所示。

执行如下命令创建命名空间。

2.安装gitlab-redis

创建gitlab-redis.yaml文件,文件的内容如下所示。


讯享网

首先,在命令行执行如下命令创建/data1/docker/xinsrv/redis目录。

执行如下命令安装gitlab-redis。

3.安装gitlab-postgresql

创建gitlab-postgresql.yaml,文件内容如下所示。

首先,执行如下命令创建/data1/docker/xinsrv/postgresql目录。

接下来,安装gitlab-postgresql,如下所示。

4.安装gitlab

(1)配置用户名和密码

首先,在命令行使用base64编码为用户名和密码进行转码,本示例中,使用的用户名为admin,密码为admin.1231

转码情况如下所示。

转码后的用户名为:YWRtaW4= 密码为:YWRtaW4uMTIzMQ==

也可以对base64编码后的字符串解码,例如,对密码字符串解码,如下所示。

接下来,创建secret-gitlab.yaml文件,主要是用户来配置GitLab的用户名和密码,文件内容如下所示。

执行配置文件的内容,如下所示。

(2)安装GitLab

创建gitlab.yaml文件,文件的内容如下所示。

注意:在配置GitLab时,监听主机时,不能使用IP地址,需要使用主机名或者域名,上述配置中,我使用的是gitlab.binghe.com主机名。

在命令行执行如下命令创建/data1/docker/xinsrv/gitlab目录。

安装GitLab,如下所示。

5.安装完成

查看k8s-ops命名空间部署情况,如下所示。

也可以使用如下命令查看。

二者效果一样。

接下来,查看GitLab的端口映射,如下所示。

此时,可以看到,可以通过Master节点(binghe101)的主机名gitlab.binghe.com和端口30088就能够访问GitLab。由于我这里使用的是虚拟机来搭建相关的环境,在本机访问虚拟机映射的gitlab.binghe.com时,需要配置本机的hosts文件,在本机的hosts文件中加入如下配置项。

注意:在Windows操作系统中,hosts文件所在的目录如下。

接下来,就可以在浏览器中通过链接:http://gitlab.binghe.com:30088 来访问GitLab了,如下所示。

此时,可以通过用户名root和密码admin.1231来登录GitLab了。

注意:这里的用户名是root而不是admin,因为root是GitLab默认的超级用户。

登录后的界面如下所示。

到此,K8S安装gitlab完成。

注意:这里将Harbor私有仓库安装在Master节点(binghe101服务器)上,实际生产环境中建议安装在其他服务器。

1.下载Harbor的离线安装版本

2.解压Harbor的安装包

解压成功后,会在服务器当前目录生成一个harbor目录。

3.配置Harbor

注意:这里,我将Harbor的端口修改成了1180,如果不修改Harbor的端口,默认的端口是80。

(1)修改harbor.yml文件

修改的配置项如下所示。

(2)修改daemon.json文件

修改/etc/docker/daemon.json文件,没有的话就创建,在/etc/docker/daemon.json文件中添加如下内容。

也可以在服务器上使用 ip addr 命令查看本机所有的IP地址段,将其配置到/etc/docker/daemon.json文件中。这里,我配置后的文件内容如下所示。

4.安装并启动harbor

配置完成后,输入如下命令即可安装并启动Harbor

5.登录Harbor并添加账户

安装成功后,在浏览器地址栏输入http://192.168.175.101:1180打开链接,如下图所示。

输入用户名admin和密码binghe123,登录系统,如下图所示

接下来,我们选择用户管理,添加一个管理员账户,为后续打包Docker镜像和上传Docker镜像做准备。添加账户的步骤如下所示。

此处填写的密码为Binghe123。

点击确定后,如下所示。

此时,账户binghe还不是管理员,此时选中binghe账户,点击“设置为管理员”。

此时,binghe账户就被设置为管理员了。到此,Harbor的安装就完成了。

6.修改Harbor端口

如果安装Harbor后,大家需要修改Harbor的端口,可以按照如下步骤修改Harbor的端口,这里,我以将80端口修改为1180端口为例

(1)修改harbor.yml文件

修改的配置项如下所示。

(2)修改docker-compose.yml文件

修改的配置项如下所示。

(3)修改config.yml文件

修改的配置项如下所示。

(4)重启Docker

(5)重启Harbor

1.安装nfs(之前安装过的话,可以省略此步)

使用 nfs 最大的问题就是写权限,可以使用 kubernetes 的 securityContext/runAsUser 指定 jenkins 容器中运行 jenkins 的用户 uid,以此来指定 nfs 目录的权限,让 jenkins 容器可写;也可以不限制,让所有用户都可以写。这里为了简单,就让所有用户可写了。

如果之前已经安装过nfs,则这一步可以省略。找一台主机,安装 nfs,这里,我以在Master节点(binghe101服务器)上安装nfs为例。

在命令行输入如下命令安装并启动nfs。

2.创建nfs共享目录

在Master节点(binghe101服务器)上创建 目录作为nfs的共享目录,如下所示。

接下来,编辑/etc/exports文件,如下所示。

在/etc/exports文件文件中添加如下一行配置。

这里的 ip 使用 kubernetes node 节点的 ip 范围,后面的 选项会将所有访问的用户都映射成 nfsnobody 用户,不管你是什么用户访问,最终都会压缩成 nfsnobody,所以只要将 的属主改为 nfsnobody,那么无论什么用户来访问都具有写权限。

这个选项在很多机器上由于用户 uid 不规范导致启动进程的用户不同,但是同时要对一个共享目录具有写权限时很有效。

接下来,为 目录授权,并重新加载nfs,如下所示。

在K8S集群中任意一个节点上使用如下命令进行验证:

如果能够看到 /opt/nfs/jenkins-data 就表示 ok 了。

具体如下所示。

3.创建PV

Jenkins 其实只要加载对应的目录就可以读取之前的数据,但是由于 deployment 无法定义存储卷,因此我们只能使用 StatefulSet。

首先创建 pv,pv 是给 StatefulSet 使用的,每次 StatefulSet 启动都会通过 volumeClaimTemplates 这个模板去创建 pvc,因此必须得有 pv,才能供 pvc 绑定。

创建jenkins-pv.yaml文件,文件内容如下所示。

我这里给了 1T存储空间,可以根据实际配置。

执行如下命令创建pv。

4.创建serviceAccount

创建service account,因为 jenkins 后面需要能够动态创建 slave,因此它必须具备一些权限。

创建jenkins-service-account.yaml文件,文件内容如下所示。

上述配置中,创建了一个 RoleBinding 和一个 ServiceAccount,并且将 RoleBinding 的权限绑定到这个用户上。所以,jenkins 容器必须使用这个 ServiceAccount 运行才行,不然 RoleBinding 的权限它将不具备。

RoleBinding 的权限很容易就看懂了,因为 jenkins 需要创建和删除 slave,所以才需要上面这些权限。至于 secrets 权限,则是 https 证书。

执行如下命令创建serviceAccount。

5.安装Jenkins

创建jenkins-statefulset.yaml文件,文件内容如下所示。

jenkins 部署时需要注意它的副本数,你的副本数有多少就要有多少个 pv,同样,存储会有多倍消耗。这里我只使用了一个副本,因此前面也只创建了一个 pv。

使用如下命令安装Jenkins。

6.创建Service

创建jenkins-service.yaml文件,文件内容如下所示。

使用如下命令安装Service。

7.安装 ingress

jenkins 的 web 界面需要从集群外访问,这里我们选择的是使用 ingress。创建jenkins-ingress.yaml文件,文件内容如下所示。

这里,需要注意的是host必须配置为域名或者主机名,否则会报错,如下所示。

使用如下命令安装ingress。

最后,由于我这里使用的是虚拟机来搭建相关的环境,在本机访问虚拟机映射的jekins.binghe.com时,需要配置本机的hosts文件,在本机的hosts文件中加入如下配置项。

注意:在Windows操作系统中,hosts文件所在的目录如下。

接下来,就可以在浏览器中通过链接:http://jekins.binghe.com:31888 来访问Jekins了。

这里,以在Master节点(binghe101服务器)上安装SVN为例。

1.使用yum安装SVN

在命令行执行如下命令安装SVN。

2.创建SVN库

依次执行如下命令。

3.配置SVN

配置后的内容如下所示。

配置后的内容如下所示。

配置后的文件如下所示。

接下来,将/data/svn/conf目录下的svnserve.conf文件复制到/data/svn/test/conf/目录下。如下所示。

4.启动SVN服务

(1)创建svnserve.service服务

创建svnserve.service文件

文件的内容如下所示。

接下来执行如下命令使配置生效。

命令执行成功后,修改 /etc/sysconfig/svnserve 文件。

修改后的文件内容如下所示。

(2)启动SVN

首先查看SVN状态,如下所示。

可以看到,此时SVN并没有启动,接下来,需要启动SVN。

设置SVN服务开机自启动。

接下来,就可以下载安装TortoiseSVN,输入链接svn://192.168.0.10/test 并输入用户名binghe,密码binghe123来连接SVN了。

注意:安装Jenkins之前需要安装JDK和Maven,我这里同样将Jenkins安装在Master节点(binghe101服务器)。

1.启用Jenkins库

运行以下命令以下载repo文件并导入GPG密钥:

2.安装Jenkins

执行如下命令安装Jenkis。

接下来,修改Jenkins默认端口,如下所示。

修改后的两项配置如下所示。

此时,已经将Jenkins的端口由8080修改为18080

3.启动Jenkins

在命令行输入如下命令启动Jenkins。

配置Jenkins开机自启动。

查看Jenkins的运行状态。

说明,Jenkins启动成功。

1.登录Jenkins

首次安装后,需要配置Jenkins的运行环境。首先,在浏览器地址栏访问链接http://192.168.0.10:18080,打开Jenkins界面。

根据提示使用如下命令到服务器上找密码值,如下所示。

将密码71af861c2ab948a1b6efc9f7dde90776复制到文本框,点击继续。会跳转到自定义Jenkins页面,如下所示。

这里,可以直接选择“安装推荐的插件”。之后会跳转到一个安装插件的页面,如下所示。

此步骤可能有下载失败的情况,可直接忽略。

2.安装插件

需要安装的插件

还有更多的插件可供选择,可点击 系统管理->管理插件进行管理和添加,安装相应的Docker插件、SSH插件、Maven插件。其他的插件可以根据需要进行安装。如下图所示。

3.配置Jenkins

(1)配置JDK和Maven

在Global Tool Configuration中配置JDK和Maven,如下所示,打开Global Tool Configuration界面。

接下来就开始配置JDK和Maven了。

由于我在服务器上将Maven安装在/usr/local/maven-3.6.3目录下,所以,需要在“Maven 配置”中进行配置,如下图所示。

接下来,配置JDK,如下所示。

注意:不要勾选“Install automatically”

接下来,配置Maven,如下所示。

注意:不要勾选“Install automatically”

(2)配置SSH

进入Jenkins的Configure System界面配置SSH,如下所示。

找到 SSH remote hosts 进行配置。

配置完成后,点击Check connection按钮,会显示 Successfull connection。如下所示。

至此,Jenkins的基本配置就完成了。

1.调整SpringBoot项目的配置

实现,SpringBoot项目中启动类所在的模块的pom.xml需要引入打包成Docker镜像的配置,如下所示。

接下来,在SpringBoot启动类所在模块的根目录创建Dockerfile,内容示例如下所示。

根据实际情况,自行修改。

注意:FROM 192.168.0.10:1180/library/java:8的前提是执行如下命令。

在SpringBoot启动类所在模块的根目录创建yaml文件,录入叫做test.yaml文件,内容如下所示。

2.Jenkins配置发布项目

将项目上传到SVN代码库,例如地址为svn://192.168.0.10/test

接下来,在Jenkins中配置自动发布。步骤如下所示。

点击新建Item。

在描述文本框中输入描述信息,如下所示。

接下来,配置SVN信息。

注意:配置GitLab的步骤与SVN相同,不再赘述。

定位到Jenkins的“构建模块”,使用Execute Shell来构建发布项目到K8S集群。

执行的命令依次如下所示。

好了,今天就到这儿吧,我是冰河,我们下期见~~

小讯
上一篇 2025-05-10 15:48
下一篇 2025-06-01 07:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/181921.html