您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

企业级容器云平台的落地与实施

时间:2021-01-05 09:25:00  来源:  作者:

随着IT行业的发展和变迁,IT应用的底层支持也从大型机、小型机、PC服务器、虚拟化技术,到如今的容器化。基于敏捷开发的持续迭代,持续部署,以及多样化的技术栈,传统的底层架构变得越来越冗杂,运维管理越来越力不从心,运维人员也逐步陷落在无尽的“救火”运维模式。

容器技术的出现,从根本上改变了这一切。而容器高效的编排与管理,才是让其风光无限的前提条件。Kubernetes经过多年的发展,已经成为行业的事实标准。而如何利用好Kubernetes,为企业的发展助力,成为很多企业,尤其是初创企业无法忽略的一道难题。

​ 本文将介绍利用Amazon EKS打造企业级容器云平台,通过一系列的实践操作,让大家直观地了解AWS是如何帮助企业高效地部署、管理容器化应用。

1. 传统应用架构的容器化之路

​ 说到“传统”二字,大家第一反应,就是“落后”,“守旧”,然而现实情况却是----绝大部分传统应用,依然在良好地运行在这些传统架构中。这些被服务的对象不会因为某些因素对整个系统资源的需求发生很大变化,也不会有频繁的系统功能的迭代开发需求。

​ 但是随着互联网、大数据、AI等技术的发展,各行各业都在努力地从信息化向智能化转型。而转型的过程中,越来越多的应用场景,和频繁地迭代开发,也让“传统”架构越来越庞大。随之而来的是运维人员疲于奔命的“救火”,系统服务越来越不稳定,以及系统成本的失控飞涨。

​ 如何才能从根本上一劳永逸地解决这些问题? 容器化/微服务化是很多企业寄予厚望的方向。

容器化真的那么有效吗?

​ 我们以下图为例。这是一个很通用的架构,在多台服务器上分别部署Tomcat,使用反向代理软件(Nginx)把请求均匀分发到每个Tomcat中。假定由于11.11促销,我们需要将现有的3台Tomcat扩充到10台,运维人员需要完成哪些工作?(假设服务器硬件已经准备好)

传统系统的扩容步骤:

1. 安装OS,设置安全和权限相关

2. 分配IP,联网

3. 部署Tomcat

4. 以上动作做7遍

​ 仅仅一个扩容,就需要一个资深的运维人员花费几个小时才能完成。如果要扩充到100个节点呢,工作量成倍增加。

容器化系统扩容步骤:

​ 如果我们使用容器化技术来完成刚刚这件事,就会节省很多人力。

1. 安装OS,并由Kubernetes统一管理

2. 一条命令足以,并且在秒级完成扩展

kubectl scale rc tomcat --replicas=10

3. 完成

​ 简单的一个对比,即可发现,在资源分配,系统稳定(自愈),运维管理等多个方面,容器化技术都可有效地降低企业的成本和运维压力,并且让企业保持技术的敏捷性和先进性。

企业级容器云平台的落地与实施

 

2. 容器化应用场景

​ 刚刚讨论过容器化对于企业的价值,接下来要继续分析哪些场景适合容器化。

​ 容器化很重要的特点,就是轻量化和无状态。而像传统的企业应用软件,承载业务模块众多,功能流程繁琐,因此并不适合容器化改造。具体哪些应用场景比较适合呢?主要包含以下几种场景(当然,这只是几种常见情况,业务场景满足轻量化、无状态的特点都是可以尝试容器化技术)

2.1. 应用打包

2.2. 多版本混合部署

2.3. 升级回滚

2.4. 多租户资源隔离

2.5. 内部开发环境

​ 我们一直在说容器化(Docker为代表)的各种优势,但是企业在真正的生产环境中,如果只是通过Docker来实现容器化,是无法满足高可用、弹性扩展和高并发等场景需求。而Kubernetes的出现,才让Docker真正在生产环境中被大规模使用起来。Kubernetes提供了应用部署、规划、更新、维护的一种机制,让容器化应用的部署和管理更简单、更高效,。

Kubernetes的特点:

· 可移植: 支持公有云,私有云,混合云,多云(multi-cloud)

· 可扩展: 模块化,插件化,可挂载,可组合

· 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

​ Kubernetes结合Docker,让企业容器化之路变得更加容易,从而更快地满足业务需求。 但是,事物都是有两面性,并不是所有项目都适合容器化改造,而且任何的改动都有可能产生未知的影响,要对技术保持敬畏,对生产保持敬畏,才能在容器化的道路上走的更稳。

​ Kubernetes虽好,但是对于很多初创企业,和没有太多相关技术积累的传统企业,Kubernetes的学习成本过高,企业会在底层架构的高可用性、网络、机房等方面遇到一系列问题,从而让容器化之路满是荆棘。

3. Amazon EKS助力企业快速实现容器化转型

​ 如何快速、高效地拥有自己的容器化平台呢?下面一段,就是AWS官网上Amazon EKS的介绍:

​ Amazon EKS 是一项托管服务,可让您在 AWS 上轻松运行 Kubernetes,而无需安装、操作和维护您自己的 Kubernetes 控制层面或节点。Kubernetes 是一个用于实现容器化应用程序的部署、扩展和管理的自动化的开源系统。

​ Amazon EKS 跨多个可用区运行 Kubernetes 控制层面实例以确保高可用性。Amazon EKS 可以自动检测和替换运行状况不佳的控制层面实例,并为它们提供自动版本升级和修补。

​ Amazon EKS 与许多 AWS 服务集成以便为您的应用程序提供可扩展性和安全性,包括:

· 用于容器镜像的 Amazon ECR

· 用于负载分配的 Elastic Load Balancing

· 用于身份验证的 IAM

· 用于隔离的 Amazon VPC

​ Amazon EKS 运行最新版本的开源 Kubernetes 软件,因此您可以使用 Kubernetes 社区中的所有现有插件和工具。在 Amazon EKS 上运行的应用程序与在任何标准 Kubernetes 环境中运行的应用程序完全兼容,无论此类环境是在本地数据中心还是在公有云中运行都是如此。这意味着,您可以轻松地将任何标准 Kubernetes 应用程序迁移到 Amazon EKS,而无需修改任何代码。

4. 理论结合实际,让容器化更直观

​ 理论说了一大堆,不如动手玩起来。下面,我设计一个场景,在Amazon EKS上逐步完成容器化部署,并逐步在每个环节介绍技术细节。

1) 通过Nginx,做三个页面web1,web2,web3

2)将三个web页面作为一组服务,由Amazon EKS管理

3) 通过http访问,轮询到三个不同的页面,来看到效果

​ 注释:web1,web2,web3实际生产应该是一个业务,只不过为了显示实验效果,通过不同的页面,展示轮询的效果

4.1. 环境准备

4.1.1. 需要一个AWS账号

4.1.2. 账号资源限制检查,确保有足够的IGW,VPC,EIP等

4.1.3. 安装awscli(包含eksctl)及配置kubectl:

4.1.3.1. awscli安装:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

检查安装结果

$ aws --version

安装方法参考链接:

https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-install.html

4.1.3.2. 配置kubectl,

aws eks --region cn-northwest-1 update-kubeconfig --name my-zhy-eks

官方配置方法链接:

https://docs.amazonaws.cn/eks/latest/userguide/create-kubeconfig.html

4.2. 创建****Amazon EKS集群:

4.2.1. 创建命令

#命令,参数注释

--node-type 工作节点类型

--nodes 工作节点数量

CLUSTER_NAME 集群名称

AWS_REGION cn-northwest-1:宁夏区; cn-north-1:北京区

创建命令:

AWS_REGION=cn-northwest-1
AWS_DEFAULT_REGION=cn-northwest-1
CLUSTER_NAME=my-zhy-eks
eksctl create cluster --name=${CLUSTER_NAME} --version 1.15 --nodes=3 --node-type t3.medium --managed --alb-ingress-access --region=${AWS_REGION}

4.2.2. 成功执行的输出:

eksctl create cluster --name=${CLUSTER_NAME} --version 1.15 --nodes=3 --node-type t3.medium --managed --alb-ingress-access --region=${AWS_REGION}
[ℹ]  eksctl version 0.32.0
[ℹ]  using region cn-northwest-1
[ℹ]  setting availability zones to [cn-northwest-1b cn-northwest-1c cn-northwest-1a]
[ℹ]  subnets for cn-northwest-1b - public:192.168.0.0/19 private:192.168.96.0/19
[ℹ]  subnets for cn-northwest-1c - public:192.168.32.0/19 private:192.168.128.0/19
[ℹ]  subnets for cn-northwest-1a - public:192.168.64.0/19 private:192.168.160.0/19
[ℹ]  using Kubernetes version 1.15
[ℹ]  creating EKS cluster "my-zhy-eks" in "cn-northwest-1" region with managed nodes
[ℹ]  will create 2 separate CloudFormation stacks for cluster itself and the initial managed nodegroup
[ℹ]  if you encounter any issues, check CloudFormation console or try 'eksctl utils describe-stacks --region=cn-northwest-1 --cluster=my-zhy-eks'
[ℹ]  CloudWatch logging will not be enabled for cluster "my-zhy-eks" in "cn-northwest-1"
[ℹ]  you can enable it with 'eksctl utils update-cluster-logging --enable-types={SPECIFY-YOUR-LOG-TYPES-HERE (e.g. all)} --region=cn-northwest-1 --cluster=my-zhy-eks'
[ℹ]  Kubernetes API endpoint access will use default of {publicAccess=true, privateAccess=false} for cluster "my-zhy-eks" in "cn-northwest-1"
[ℹ]  2 sequential tasks: { create cluster control plane "my-zhy-eks", 2 sequential sub-tasks: { no tasks, create managed nodegroup "ng-e5146e45" } }
[ℹ]  building cluster stack "eksctl-my-zhy-eks-cluster"
[ℹ]  deploying stack "eksctl-my-zhy-eks-cluster"
[ℹ]  building managed nodegroup stack "eksctl-my-zhy-eks-nodegroup-ng-e5146e45"
[ℹ]  deploying stack "eksctl-my-zhy-eks-nodegroup-ng-e5146e45"
[ℹ]  waiting for the control plane availability...
[✔]  saved kubeconfig as "/root/.kube/config"
[ℹ]  no tasks
[✔]  all EKS cluster resources for "my-zhy-eks" have been created
[ℹ]  nodegroup "ng-e5146e45" has 3 node(s)
[ℹ]  node "ip-192-168-5-37.cn-northwest-1.compute.internal" is ready
[ℹ]  node "ip-192-168-58-97.cn-northwest-1.compute.internal" is ready
[ℹ]  node "ip-192-168-65-234.cn-northwest-1.compute.internal" is ready
[ℹ]  waiting for at least 3 node(s) to become ready in "ng-e5146e45"
[ℹ]  nodegroup "ng-e5146e45" has 3 node(s)
[ℹ]  node "ip-192-168-5-37.cn-northwest-1.compute.internal" is ready
[ℹ]  node "ip-192-168-58-97.cn-northwest-1.compute.internal" is ready
[ℹ]  node "ip-192-168-65-234.cn-northwest-1.compute.internal" is ready
[ℹ]  kubectl command should work with "/root/.kube/config", try 'kubectl get nodes'
[✔]  EKS cluster "my-zhy-eks" in "cn-northwest-1" region is ready

4.2.3. Eksctl执行之后,需要等待10分钟左右。模式很简单的步骤,其实是AWS通过调用cloudformation在后台做了许多工作才完成的。下图是cloudformation的stack步骤:

企业级容器云平台的落地与实施

 

4.2.4. Amazon EKS完成后的,cloudformation状态

企业级容器云平台的落地与实施

 

4.2.5. 查询node状态信息

#  kubectl get node
NAME                                                STATUS   ROLES    AGE   VERSION
ip-192-168-5-37.cn-northwest-1.compute.internal     Ready    <none>   11m   v1.15.12-eks-31566f
ip-192-168-58-97.cn-northwest-1.compute.internal    Ready    <none>   11m   v1.15.12-eks-31566f
ip-192-168-65-234.cn-northwest-1.compute.internal   Ready    <none>   11m   v1.15.12-eks-31566f

4.2.6. 扩展集群节点方法

​ 我们之前通过eksctl创建了一个3节点的集群[WHE5] [XX6] ,如果由于业务的增加,希望扩容的话,如何操作呢?具体命令参考如下,将当前集群,扩容到10个节点:

NODE_GROUP=$(eksctl get nodegroup --cluster ${CLUSTER_NAME} --region=${AWS_REGION} -o json | jq -r '.[].Name')
eksctl scale nodegroup --cluster=${CLUSTER_NAME} --nodes=10 --name=${NODE_GROUP} --region=${AWS_REGION}

检查结果

eksctl get nodegroup --cluster ${CLUSTER_NAME} --region=${AWS_REGION}
eksctl get cluster
NAME            REGION
my-zhy-eks      cn-northwest-1

4.3.Amazon ECR的使用

​ 针对一个企业,很多image都是定制化的,而定制化的私有image管理,在AWS是如何操作的呢? Amazon ECR,让image的管理,变得更简单易用。下面通过httpd的image,定制化并生成私有httpdok的image之后,并上传到Amazon ECR,作为步骤演示:

4.3.1. 首先创建一个Amazon ECR Repositories ,选择并点击View push commands.

企业级容器云平台的落地与实施

 

4.3.2. 根据”View puhs commands”步骤,将本地创建好的image,上传到Amazon ECR。

企业级容器云平台的落地与实施

 

具体命令步骤:

# aws ecr get-login-password --region cn-northwest-1 | docker login --username AWS --password-stdin <account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn

查看本地镜像

# docker images
REPOSITORY                                                    TAG                 IMAGE ID            CREATED             SIZE
httpdok                                                       v1                  df353399ffe4        7 seconds ago       299MB

为镜像打标签

# docker tag httpdok:latest <account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn/httpdok:latest

在查看本地Docker的images,可以看到已经出现一个新的,有ECR连接串的image

# docker images
REPOSITORY                                                     TAG                 IMAGE ID            CREATED             SIZE
<account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn/httpdok   latest              9028c4373343        4 minutes ago       299MB
httpdok                                                        latest              9028c4373343        4 minutes ago       299MB

推送image到ECR上

# docker push <account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn/httpdok:latest
The push refers to repository [<account_id>.dkr.ecr.cn-northwest-1.amazonaws.com.cn/httpdok]

回到aws控制台,已经可以看到上传的image

企业级容器云平台的落地与实施

 

4.4.Amazon EKS实例演示

下面开始部署容器到Amazon EKS中,通过Nginx来演示如何部署image到Amazon EKS,并轮询访问.

4.4.1. 启动三个nginx pod 的 ReplicaSet

准备yaml文件

cat <<EOF > nginx-deployment.yaml
apiVersion: Apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
EOF

执行以下命令,进行部署

kubectl apply -f nginx-deployment.yaml

检查创建状态

kubectl get pods -o wide

4.4.2. 创建LoadBalancer 服务

准备yaml文件

cat <<EOF > loadbalancer.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
EOF

执行以下命令,进行部署

kubectl create -f loadbalancer.yaml

4.4.3. 检查创建状态

kubectl get service
NAME            TYPE           CLUSTER-IP       EXTERNAL-IP                                                                      PORT(S)        AGE
nginx-service   LoadBalancer   10.100.212.244   ae8e75d7e149044eb905b6bbff796e7e-629951941.cn-northwest-1.elb.amazonaws.com.cn   80:31248/TCP   7m53s

4.4.4. 监测网页显示情况

curl -silent ae8e75d7e149044eb905b6bbff796e7e-629951941.cn-northwest-1.elb.amazonaws.com.cn | grep title
<title>Welcome to nginx!</title>

至此,我们已经开始使用EKS上的Nginx集群了。但是为了建议Load balance的工作效果。我们继续下面的小实验,可以更好的观察load balance的效果

4.5. 轮询效果展示

4.5.1. 获取pod信息

kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-574b87c764-92jbs   1/1     Running   0          10h
nginx-deployment-574b87c764-hmz9t   1/1     Running   0          10h
nginx-deployment-574b87c764-nqpmc   1/1     Running   0          10h

4.5.2. 以下命令是确定pod中nginx的欢迎界面的index.html位置

kubectl exec -it nginx-deployment-574b87c764-92jbs -- /usr/sbin/nginx -t
kubectl exec -it nginx-deployment-574b87c764-92jbs -- cat /etc/nginx/nginx.conf 
kubectl exec -it nginx-deployment-574b87c764-92jbs -- ls /usr/share/nginx/html
kubectl exec -it nginx-deployment-574b87c764-92jbs -- cat /usr/share/nginx/html/index.html 
kubectl exec -it nginx-deployment-574b87c764-92jbs -- cp/usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.bk

注释:kubectl exce的格式如下:

kubectl exec -it <podName> -c <containerName> -n <namespace> -- shell comand

4.5.3. 更改index.html内容

在本地编辑文件name.html,然后上传到3个Pod的容器中,

kubectl cp name.html nginx-deployment-574b87c764-nqpmc:usr/share/nginx/html/index.html

注释: pod和本地之间传输文件命令格式

Pod下载文件到本地

kubectl cp -n NAMESPACE_name POD_name:Pod_FILE_name Local_FILE_name

本地上传文件到Pod

kubectl cp Local_FILE_name -n NAMESPACE_name POD_name:Pod_FILE_name

最终查询输出结果,多次查询,可以看到load balance会将连接随机分配到不同Pod节点

curl -silent ae8e75d7e149044eb905b6bbff796e7e-629951941.cn-northwest-1.elb.amazonaws.com.cn | grep Node

输出结果如下:

企业级容器云平台的落地与实施

 

5. 总结

​ 通过本文,大家已经对容器化有一个初步的了解,并且针对Amazon EKS打造的企业容器化平台也有了初步认知。Docker,Kubernetes对于企业的系统和业务的发展,有着不可忽视的“助推力”。

​ 然而,Kubernetes的学习曲线,以及企业的Kubernetes人才的积累,都是需要较长的“时间”成本。而借助云计算供应商的成熟平台和产品,可以降低企业的技术人才的积累成本,从而达到事半功倍的效果。

​ 我们通过这次实战的演练,可以看到,基于Amazon EKS创建容器化平台,只需一条命令。Amazon EKS让Kubernetes的创建,运行与维护变得简单、可靠。通过AWS Fargate,企业甚至可以完全省去虚拟机(EC2)的管理,只关注Kubernetes顶层业务架构的逻辑即可,进而可以将更多的“时间”专注在业务的开发,而不是被底层架构的种种问题所拖累,也可以让运维人员逃离无尽的“救火”式运维模式。

作者:忘记她

出处:https://www.cnblogs.com/ma159753/p/14219854.html



Tags:容器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一般的docker镜像为了节省空间,通常是没有安装systemd或者sysvint这类初始化系统的进程。一旦容器的起始进程不稳定将会产生大量的僵尸进程,影响宿主系统的运行。 缺少init的...【详细内容】
2021-12-23  Tags: 容器  点击:(6)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Tags: 容器  点击:(33)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  Tags: 容器  点击:(167)  评论:(0)  加入收藏
概述谷歌云使用先进的 Andromeda 网络来实现 VPC 内实例之间的相互访问,以及 Google Kubernetes Engine (GKE) 的 Pod 的跨节点互访,避免了配置静态路由或者 Overlay 网络带来...【详细内容】
2021-08-20  Tags: 容器  点击:(103)  评论:(0)  加入收藏
stack容器#include <iostream>using namespace std;#include <stack>//容器头文件void test(){stack<int>p;p.push(100);p.push(1000);p.push(100);while(!p.empty()){cout<...【详细内容】
2021-08-17  Tags: 容器  点击:(81)  评论:(0)  加入收藏
一、介绍    1、介绍        最近无聊,也没什么事做,没事做总是要给自己找点事情做吧,毕竟人的生活在与折腾。于是,决定自己手动写一个 IOC 的框架。我们知道在 Net...【详细内容】
2021-07-20  Tags: 容器  点击:(80)  评论:(0)  加入收藏
环境:Spring5.3.3Spring容器启动时,创建 DefaultListableBeanFactory 工厂实例化 AnnotationConfigApplicationContext对象public AnnotationConfigApplicationContext(String...【详细内容】
2021-06-10  Tags: 容器  点击:(152)  评论:(0)  加入收藏
对于初学者来说,刚刚接触docker会有点迷,特别是镜像与容器。其实我们可以理解镜像与容器为一对多的关系。下图错误的示范,为什么是错误的呢?因为可以通过一个镜像确实可以启动...【详细内容】
2021-06-09  Tags: 容器  点击:(136)  评论:(0)  加入收藏
前言最近在工作中,接手了不少历史遗留的项目,有一些依赖是使用的docker启动,可以正常使用。但是由于优化服务器资源的缘故,需要将这些依赖迁移到其他服务器,这时候问题出现了。此...【详细内容】
2021-06-02  Tags: 容器  点击:(253)  评论:(0)  加入收藏
虚拟节点(Virtual Node)实现了Kubernetes与弹性容器实例ECI的无缝连接,让Kubernetes集群轻松获得极大的弹性能力,而不必受限于集群的节点计算容量。您可以灵活动态的按需创建ECI...【详细内容】
2021-04-15  Tags: 容器  点击:(230)  评论:(0)  加入收藏
▌简易百科推荐
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(10)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(10)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(47)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  抓蛙程序猿    Tags:docker   点击:(48)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Java网络研发架构师    Tags:Spring   点击:(33)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  运维贼船    Tags:docker   点击:(61)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  程序狗爱化妆    Tags:Nacos   点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  晋升奶爸的垃圾佬    Tags:Docker   点击:(167)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  石老师小跟班    Tags:Redis主从复制   点击:(117)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条