docker、K8S、k3s、rancher

第一:docker 基础使用

docker 竞品

最新调查:OpenStack、Docker、KVM被评为最火的云开源项目。
  1. Docker与KVM之间的区别(碧桂园潼湖使用vcenter)
  2. docker与openstack的关系
  3. 云计算软件工程师(kvm虚拟化技术、openstack云计算技术)

dokcer 版本

Docker 社区版(CE)和企业版(EE)
  1. Docker中文网站
  2. Docker 三大概念:镜像、容器和仓库? (镜像类似java的class,容器就是对象,仓库就是存储镜像的服务器)

国内registry,国内加速地址和镜像仓库

说明网易的镜像仓库有使用个数限制,超出个数,我们就使用阿里云你的镜像仓库

云国内:

  1. 网易蜂巢, 可以创建私有镜像、或者使用共有镜像
  2. 使用aliyun镜像加速,我额阿里云加速地址,搜索【阿里云】–> 【容器镜像服务】容器镜像服务-有详细官方教程,替换默认 registry---->aliyun docker login 失败(开发者平台镜像仓库无法登陆)
  3. daoClound daocloud 加速器配置

DevOps:(英文Development和Operations的组合)

云计算的三种服务模式:IaaS,PaaS和SaaS

IaaS,PaaS及SaaS三种云服务的比较及对应的提供商

1:Infrastructure(基础设施)-as-a-Service

物理机/虚拟机,网络资源和其他资源,如:亚马逊的EC2,微软的Azure,Rackspace的OpenStack,IBM,VMWare的vCloud;国内的如阿里云(aliyun),青云(qingcloud)以及移动的大云(big
cloud)等等

2:Platform(平台)-as-a-Service,,

为用户提供计算平台通常包括操作系统,编程语言的运行环境,数据库,Web服务器等。一些主要的服务提供商:AWS Elastic Beanstalk,Heroku,Force.com,谷歌的GAE(
Google App Engine),新浪SAE,百度云的开发引擎等

3:Software(软件)-as-a-Service。

基础设施在最下端,平台在中间,软件在顶端;如:谷歌的Apps,微软的Office 365,Citrix的CloudStack,以及目前比较火的各种云存储(网盘),云相册,云备份,云打印,云监控等正对个人用的云服务产品。

  • Docker:码头工人,是基于Linux 容器(Container) LXC的一种C/S架构的技术。其中的容器、镜像类似面向对象的类和对象。
  • KVM:虚拟器,Xen/KVM/vSphere/HyperV (Xen:vmware和Citrix开源Xen)、HyperV微软开发类似Xen的虚拟化技术、vSphere是vmware公司企业级虚拟化方案,都是Hypervisor
  • OpenStack:云计算
  • Hypervisor或Container项目、基础设施即服务(IaaS) 、平台即服务 (PaaS)
  • Docker精华学习资料集锦,老司机快上车

4: 相关博客

Docker — 从入门到实践-国内镜像
Docker命令详解

最后附上docker 安装命令

# centos 7.5+ docker安装,指定版本 `18.06.x`

# docker 安装命令,参考链接  [yeasy/docker_practice](https://yeasy.gitbooks.io/docker_practice/content/install/centos.html)
#[Docker — 从入门到实践](https://yeasy.gitbooks.io/docker_practice/content/)
#若访问不了,请直接github搜索`docker_practice`

# docker 安装指定版本 [docker 安装指定版本](https://www.cnblogs.com/harlanzhang/p/9965534.html)

#1: 卸载旧版本 
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
# 如果卸载旧版本,按照毅然报错: conflicts with file from package docker-ce-cli-1:19.03.8-3.el7.x86_64, 见博客: centos7 安装docker 报错 conflicts with file from package
# $ sudo yum erase docker-ce-cli-1:19.03.5-3.el7.x86_64

#2: 执行依赖安装
$ sudo yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2
#3: 国内网络原因,修改yum 源头
$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

$ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

# 官方源
# $ sudo yum-config-manager \
#     --add-repo \
#     https://download.docker.com/linux/centos/docker-ce.repo

# 4:安装 Docker CE, 或者指定安装 docker CE版本
$ sudo yum makecache fast
$ sudo yum install docker-ce  # 按照默认最新版本
# sudo yum install -y docker-ce-18.06.3.ce-3.el7  # 安装指定版本

#5: 启动 Docker CE
 $ sudo systemctl enable docker
$ sudo systemctl start docker

#6 创建docker用户
$ sudo groupadd docker
$ sudo usermod -aG docker $USER

# 7 测试 Docker 是否安装正确
$ docker run hello-world

docker 命令文档 — 重要安装命令

# linux centos docker 启停
docker --version #docker 版本
systemctl status/start/stop/enable/restart docker #docker状态查看,启动、停止、开机启动、重启
docker info #查看概要信息
  • docker login 登录 docker 指定的仓库服务器
# docker login  登录 docker
# 1: 登录docker 服务器,可以是docker 官网,或者 国内docker 仓库
docker login -u 用户名 -p 密码

# docker login , 默认登录的是国外 docker 的  https://registry-1.docker.io/v2/

# 输入Daoclound 用户名和密码 dazer jiaojiao  

# sudo docker login daocloud.io

# docke镜像上传到dockerhub仓库和阿里云docker仓库的方法   https://yq.aliyun.com/articles/70756   aliyun 镜像使用教程

# docker镜像推送到网易蜂巢上面  如何推送本地镜像?  https://hub.c.163.com/v2/

#  [email protected]/oldpwdab
docker login -u {你的蜂巢邮箱账号或手机号码} -p {你的蜂巢密码} hub.c.163.com           
  • docker pull 拉去docker 镜像
# 拉去一下docker 镜像
docker pull hub.c.163.com/dazer1992/adminserver:latest
# 拉去镜像      
docker pull hub.c.163.com/dazer1992/safety:0.01      
  • docker run运行起来一个容器, 对外暴露80端口
###运行docker,hub.c.163.com/dazer1992/adminserver:latest是构建的docker镜像的名称;后台运行(-d)、并暴露端口(-p)  ;  注意查看容器的时间和本地时间是否一致。    【前面暴露对外端口:容器内部端口】
docker run -p 80:8080 -t hub.c.163.com/dazer1992/adminserver:latest    
# 后台运行 增加 -d 参数 ,加入到到端口后面
# 浏览器访问:http://localhost:8999/safety  
  • docker history 镜像历史
# 删除一个容器;删除多个容器;进入容器的内部;删除所有的容器;显示镜像的历史;
# 镜像和容器 类似 java 里面的 类 和 对象的关系;
#3 查看镜像的历史    
docker history dazer/safety 
#4 如果容器被关闭,重新启动 
docker start -i 4925cef05d35
  • docker 镜像删除
# 查看所有docker 镜像, 可以看到 TAG、IMAGE ID
docker image
# 删除镜像
docker rmi IMAGE_ID #删除image 

docker rmi -f IMAGE_ID #强行移除该镜像,即使其正被使用;

 docker rmi image_name:version #删除指定的docker 镜像
  • docker ps 查看运行的容器、停止运行
docker ps #查看运行的容器 

docker ps -a #查看所有容器(包括运行的和未运行的)

docker ps -q #仅列出容器ID 

docker ps -s #显示容器大小。

docker images #查看镜像 

docker start|stop|restart|rm #启动、停止和重启、删除一个或多个指定容器。CONTAINER_ID
docker container rm CONTAINER_ID

docker images -q 仅列出镜像ID

docker images –tree 以树状结构列出镜像的所有提交历史。

docker pull IMAGE_ID 下载image

docker push IMAGE_ID 上传image

docker logs -f <容器名orID> 查看容器日志
docker logs -f -t --tail 100 <容器名orID> #最新100条日志

docker inspect rancher/server:stable 查看镜像的挂载目录等详细信息

启动一个container并进入交互模式

docker attach <容器名orID> 进入容器内部, 连接正在运行的容器,小心别把容器停止了,正确的退出姿势 --> 组合键:Ctrl+P+Q; 只能查看log
docker exec -i <容器名orID> ls -l: 这个命令进入容器执行完命令,直接返回了
docker exec -it <容器名orID> bash:这个命令,算是真进入容器了
docker exec -it <容器名orID> /bin/sh 上面如果执行出错,请使用这个bash变成sh
exit 退出伪终端

===============================

Docker 第2课 推送 image 到 Docker Hub 获取镜像并且执行

[plain] view plain copy

docker tag dazer/safety hub.c.163.com/dazer1992/safety:0.01   步骤1:给本地的镜像打一个标签,标签就是要上传的服务器对应  
  
docker push hub.c.163.com/dazer1992/safety:0.0.1     步骤2:推送本地镜像到服务器  

操纵方法见图:

网易蜂巢docker镜像上传使用

======================

Docker 第三课 拉去服务器镜像 、进行运行

[sql] view plain copy

docker pull hub.c.163.com/dazer1992/safety:0.01      第一步:拉去镜像      
docker run -p 8999:8999 -t hub.c.163.com/dazer1992/safety:0.01   第二步:运行镜像 , 注意前面端口是对外端口,后面是内部端口

Docker 环境变量

参考-如何在Nginx配置中使用OS环境变量?
参考-论Docker容器中的Nginx配置文件如何读取系统/容器的环境变量?
参考-Dockerfile与docker-compose设置环境变量

Dockerfile指令详解

参考-Dockerfile文件详解

Docker 内部时区的问题

  1. 先确保 宿主机的时间是正确的,一定要确定 date
  2. 看看容器内部和容器外部是否都是动8区:date -R, 看是否包含+0800
  3. dockerfile创建的时候增加, ls 命令 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  4. dokcerfile创建的时候使用copy 命令RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone

docker内部数据备份–>主机

docke运行的时候,内部数据 copy 到外部是完全没有问题的。
# 把docker容器 4090bdd861ae 数据copy到 主机.
docker cp 4090bdd861ae:/dump/test.tar.gz /home     
#(4090bdd861ae<你的MongodDB容器名>)

# 把 主机数据copy到 容器内部
docker cp /home/test.js testtomcat:/usr/local/tomcat/webapps/test/js

参考1:docker下mongodb数据库备份与恢复
参考2:docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面

第二: Docker Compose 简化dokcer、daemon.json

Docker没运行要记命令来使用,还不好复用。
这里用docker compose 可以使用yml记录命令,可以复用。

参考安装Compose-Linux安装Docker Compose
参考-docker-compose 命令详解
参考-莫小安Docker-compose常用命令 - 特别实用

2.0 Docker安装、daemon.json 详解

# docker componse默认使用 GitHub的安装源,太慢了,我们这里使用 daocloud国内镜像安装把
# 1-1: 下载文件(国内源), 镜像加速可以使用阿里云的,如地址:https://cr.console.aliyun.com/cn-shanghai/instances/mirrors
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 1-2:下载文件 (Githunb源, 特变慢)
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 2:授权, 别的同,之前的命令。
chmod +x /usr/local/bin/docker-compose
# 3: 设置软连接,方便使用命令
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 4: 测试命令
docker-compose --version
## 5: 说明 windows、macos这里的compose都是默认集成在docker里面,linux需要单独安装的
# Docker version 18.09.0, build 4d60db4
# docker-compose version 1.23.1, build b02f1306
# 6: 设置阿里云加速地址、 修改docker占用磁盘位置,修改/var/lib/docker目录
 vi /etc/docker/daemon.json
 # 1: registry-mirrors 指定加速镜像地址,可以是多个
 # 2: 指定docker使用目录,默认  /var/lib/docker/, 我放到其他目录.<防止磁盘太小>;   用mv 比较靠谱:mv /var/lib/docker/ /usr/local2/        ;  \cp -rf /var/lib/docker /usr/local2/docker #前面增加\ 强制 复制粘贴, 复制 太慢了。
 # 3: 限制docker日志占用大小,物联网项目海量日志,3-4天就占用高大2-300G日志,必须限制日志大小。其中占用空间最大就是 containers 目录,eg:  /usr/local/docker/containers/afeebxxx/ax3xx-json.log
 # 4: insecure-registries 如果使用自己搭建的私有docker仓库,并且使用的不是https,这里配置,让docker仓库支持http。所有docker客户端都要配置,这个。
 #编辑内容如下:docker默认没有这个文件,需要自己创建
 {
  "registry-mirrors": ["https://y3uhkhih.mirror.aliyuncs.com"],
  "graph":"/usr/local/docker",  #单块磁盘,这个就删掉,就默认的配置。
  "log-driver":"json-file",
  "log-opts": {"max-size":"30m", "max-file":"3"},
  "insecure-registries":["47.101.31.90:5000", "10.104.16.46:5000"] #地址不存在的话,可能导致启动失败
}
# 7: 加载配置文件、重启
 加载:# sudo systemctl daemon-reload
 重启:# sudo systemctl restart docker


2.1 软件安装nginx、wordpress(wordpress+mysql)

https://gitee.com/springcloud_ourslook_groups/shell/

2.2 清理 Docker 占用的磁盘空间

docker运行还是比较占用空间,我们需要定期清理

清理 Docker 占用的磁盘空间
/var/lib/docker空间占用过大迁移–docker文件默认在var/lib/docker迁移到其他磁盘

2.2.1 查看docker磁盘占用空间

#磁盘占用排行榜
# df -h  查看磁盘占用情况,最后发现是Docker占用的日志高达300G、90G.
[root@iot_server_test ~]# du -sh /usr/local/docker/*  
# du -sh /var/lib/docker/containers/*
329G    /usr/local/docker/containers
139G    /usr/local/docker/overlay
128K    /usr/local/docker/network
20K     /usr/local/docker/builder
72K     /usr/local/docker/buildkit
1.1M    /usr/local/docker/containerd
23M     /usr/local/docker/image

2.2.2 手工清理磁盘空间

# 
docker system df #类似于Linux上的df命令,用于查看Docker的磁盘使用情况:
docker stop $(docker ps -aq) #停止所有的容器镜像
docker rm $(docker ps -aq) -f #强制删除所有的容器
sudo docker rmi $(docker images -f "dangling=true" -q) #删除是的镜像


docker rmi $(docker images -q) -f #一次性删除所有镜像,还原一个干净的服务器。
# Docker 容器镜像删除
docker container rm  xx : 删除处于终止状态的容器
docker container prune:  清理所有处于终止状态的容器
# 记得清理之后重启docker服务,否则可能相关的磁盘

2.2.3 根治docker占用磁盘空间过大问题

物联网项目使用rancher部署,发现两三天服务器磁盘就占用慢了,500G都被占用完了,
发现的是日志文件夹高达百G.

docker日志设置定期清理
docker 容器日志清理方案
参加对daemon.json的修改

  1. 磁盘占用第一多:/usr/local/docker/containers,里面的**.-json.log**日志文件非常大

第三: Rancher

K8S、k3s:、rancher。
k8s: Kubernate, ks之间8个字母。
k3s: 简化版本的容器编排。
rancher主要提供界面操作,进行容器进行编排。
Rancher 2.1平台搭建及使用
Rancher 2 VS Rancher 1:  V1 支持多种编排工具(docker Swarm、k8s、cattle),但V2只支持 k8s
k3s: rancher开发,适用于物联网、边缘网关。
helm: 起重机,k8s 包管理工具

3.0 rancher 入门 ,安装

参考rancher1x 中文
参考Rancher 2.1平台搭建及使用
参考Rancher2.1.5安装部署
参考 rancher中文官网,【官网资料特别丰富,全中文非常友好】
参考 rancher api, 可以通过代码控制 docker服务的启动、停止
参考项目中调用Rancher Rest API实践
参考Rancher-API使用珠玑 RancherLabs
参考Docker中容器的备份、恢复和迁移
参考copy容器内部文件到主机:Rancher容器目录持久化

Docker是一种linux容器技术,具有类似虚拟机的资源隔离和分配有啥,虚拟化了操作系统而不是硬件,但资源要求远远低于虚拟机,标准化了软件单元。docker有三个重要概念镜像(image)、容器(Container)、仓库(Repository),部署项目使用标准的镜像。

Kubernetes简称k8s,是一个自动化管理、编排、负载均衡、监控检测docker的工具,现在已经成为容器编排的标准。

Kubernetes简称k8s,是一个自动化管理、编排、负载均衡、监控检测docker的工具,现在已经成为容器编排的标准。

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

3.1 安装rancher1 单机版 使用内置数据库

#1: rancher1.x 安装【单击版本,非HA】 (前置条件安装 docker、centos7.2+, 版本不能太低 )
sudo docker run -d -v <host_volome>:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server:stable 
# 注意,rancher server端 1叫做:rancher/server, rancher 2叫做:rancher/rancher ; 注意,这里命令有问题,需要制定备份目录volumn,否则数据丢失就麻烦大了
#  是主机的目录,这里用来存放容器内部的mysql文件位置,如:/usr/local/docker-volume/rancher/mysql
# rancher所有数据都在mysql cattle,备份/持久化mysql非常重要。

#############################################################################
#### rancher 所有的数据都在mysql里面,因此要对mysql进行备份,或者直接使用主机的mysql。
## 参考:[rancher-server 安装单节点](https://edu.51cto.com/center/course/lesson/index?id=370206) 8分钟的地方 
#1: 进入容器内部:docker exec -it xxxxxxx /bin/bash
#2:查看运行的端口:netstat -nltp
#3: 进入mysql: mysql -uroot -p   #密码为空,直接回车
#4:查看mysql 数据:use cattle;  show tables; 
#############################################################################

3.2 安装rancher1 单机版 使用外置数据库

$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable \
    --db-host myhost.example.com --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle

#大部分的输入参数都有默认值并且是可选的,只有MySQL server的地址是必须输入的。 这里数据库版本必须是mysql1.7 的,1.8的不支持; 如果数据库没有持久化,也可以进入容器内部导出。
--db-host               IP or hostname of MySQL server
--db-port               port of MySQL server (default: 3306)
--db-user               username for MySQL login (default: cattle)
--db-pass               password for MySQL login (default: cattle)
--db-name               MySQL database name to use (default: cattle)
# 创建rancher1 使用的数据库和用户
#以下是创建数据库和数据库用户的SQL命令例子
> CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
> GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';
> GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';
######## 这里创建挺慢,查看 日志 docker logs -f  等待了 5 - 10分钟 才好

3.3 spring启动指定配置文件

参考springboot指定配置文件启动
参考Java获取系统环境变量(System Environment Variable)和系统属性(System Properties)以及启动参数的方法

# rancher java 部署 环境变量  [springboot指定配置文件启动]
#端口一般不要硬编码到代码里面;
##1:使用idea配置 vm参数里面添加:-Dserver.port=8009
##2:使用jar包运行 java -jar springboot.jar --server.port=8009
##3: jar形式 java -jar -Dspring.profiles.active=test iot-platform.jar
##4: rancher 里面使用环境变量使用第三种,eg: 环境变量名称:spring.profiles.active、取值:test

3.4 Docker安装其他中间件

docker安装一些不需要持久化的数据,还是比较好的,redis、rabbitmq等,非常方便。
docker也可以安装mysql、MongoDB、es这种必须持久化的数据。

参考 docker 安装单机mysql、redis、kibana、elasticsearch、rabbitmq
参考 docker 部署nginx、高可用mysql、MongoDB等
参考 dokcer 部署mysql主从结构

3.5 Docker安装jenkins (通过主机安装,简单快速)

docker安装jenkins,
如过安装报错 touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied

chown -R 1000:1000 /usr/local/jenkins_volume/jenkins_home 目录是宿主机的映射目录

3.6 rancher运行停止问题分析

s6-svscanctl: fatal: unable to control /service: supervisor not listening
[Note] /usr/sbin/mysqld (mysqld 5.5.62-0ubuntu0.14.04.1) starting as process 25 ...rancher运行的时候,有时候报错,启动不了,这里进行处理。

  1. 在linux主机上面运行:df -h查看是否是docker占用的空间被撑满了,如果撑满了 100%,就需要清理了。

第四 Docker 私有仓库

1:参考 Docker 私有Registry、企业级别仓库 【有管理界面、权限、证书等 可用麻烦】
2:我们使用Docker 官方的镜像搭建 私有仓库【简单、只有核心功能】,参考 centos7 Docker私有仓库搭建及删除镜像

4.1 我们使用官网的docker 提供的 registry来搭建

dcoker registry安装

 ## 注意,这里没有管理界面,需要的话,自己要再安装了一个管理界面
 # 直接启动一个 docker私有仓库。其他主要事项,看上面的博客
 # -p: 指定映射端口:内部端口
 # -v: 挂载本地目录, 映射仓库地址、映射配置文件
 # --restart=alayes docker开机启动
 # --name: 指定启动容器的名称
 docker run -v \
 	/usr/local2/docker_volume/registry/registry:/var/lib/registry \
    /usr/local2/docker_volume/registry/config/config.yml:/etc/docker/registry/config.yml \
registry:latest
 # 访问docker私有仓库,并且没有配置https的情况,增加配置 vi /etc/docker/daemon.json
 "insecure-registries":["47.101.31.90:5000", "10.104.16.46:5000"] #并重启docker,防止报错
 #查看所有的私有仓库的镜像:
 curl -XGET http://10.104.16.46:5000/v2/_catalog
 #  查看指定镜像的所有tags
 curl -XGET http://10.104.16.46:5000/v2/镜像名/tags/list
 # 

4.2 部署 Docker Registry WebUI

1:部署 Docker Registry WebUI 不推荐,4年没有更新了。
2:8天入门docker系列 —— 第六天 搭建自己的私有镜像仓库Registry推荐使用。

# 我们使用 docker-registry-ui 
# docker registry增加配置,让支持前端ui跨域访问。
# 具体config.yml文件见上面博客
# -v 挂载卷,/etc/docker/registry/config.yml 是docker内部的一个配置文件,我们进行替换。
docker run -v \
 	/usr/local2/docker_volume/registry/registry:/var/lib/registry \
    /usr/local2/docker_volume/registry/config/config.yml:/etc/docker/registry/config.yml \
registry:latest
#docker registry 配置文件 config.yml配置文件
#对应docker  registry内部文件地址:etc/docker/registry/config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
    Access-Control-Allow-Origin: ['*']
    Access-Control-Allow-Methods: ['*']
    Access-Control-Max-Age: [1728000]
    Access-Control-Expose-Headers: ['Docker-Content-Digest']
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

docker、K8S、k3s、rancher_第1张图片

4.2 使用Nexus搭建maven私服和docker私服

参考:Maven私有仓库搭建以及使用
参考:使用docker搭建nexus并配置docker私有仓库

第四: k3s、k8s

你可能感兴趣的:(docker、K8S、k3s、rancher)