当前位置: 首页 > news >正文

docker 和k8s 入门

docker 和k8s 入门

本文是云原生的学习记录,可以参考以下文档 k8s

https://www.yuque.com/leifengyang/oncloud

相关视频教程可参考如下

https://www.bilibili.com/video/BV13Q4y1C7hS?p=2&vd_source=0882f549dac54045384d4a921596e234

相对于公有云,私有云优势灵活性更强,可搭配自己的环境,控制力更强,隐私泄露风险更低

Docker 概念

不管什么程序语言的程序可以通过Docker 打成一个标准的包

可以去docker hub 下载打包好的Docker镜像

所有软件都可以通过docker run 运行起来

特点

基础镜像MB级别

创建简单docker build

隔离性强cpu 内存,访问设备隔离,网络,用户,用户组隔离

启动速度秒级

分享方便

架构

在这里插入图片描述

docker安装

卸载系统以前的docker
yum remove docker*

  1. 配置yum源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io#以下是在安装k8s的时候使用
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6
  1. 启动
systemctl enable docker --now
既要开机启动

在这里插入图片描述

通过以上命令查看是否启动成功

  1. 镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker镜像地址可通过以下链接查看 https://blog.csdn.net/yu542771572/article/details/116573666

docker镜像操作
在这里插入图片描述
docker pull nginx 是下载最新版

docker pull nginx:1.20.1 下载指定版本

docker images 查看镜像

docker rmi nginx 删除最新版本镜像

docker rmi redis:6.2.4 删除指定镜像

docker rmi image_id 通过镜像id删除

docker 容器操作

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]【docker run  设置项   镜像名  】 镜像启动运行的命令(镜像里面默认有的,一般不会写)# -d:后台运行
# --restart=always: 开机自启
docker run --name=mynginx   -d  --restart=always -p  8084:80   nginx# 查看正在运行的容器
docker ps
# 查看所有
docker ps -a
# 删除停止的容器
docker rm  容器id/名字
docker rm -f mynginx   #强制删除正在运行中的#停止容器
docker stop 容器id/名字
#再次启动
docker start 容器id/名字#应用开机自启 --restart=always
docker update 容器id/名字 --restart=always

进入容器修改内容

进入容器内部修改

# 进入容器内部的系统,修改容器内容
docker exec -it 容器id  /bin/bash
  1. 提交镜像,将保存一个镜像到本地
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]docker commit -a "leifengyang"  -m "首页变化" 341d81f7504f guignginx:v1.0
  1. 保存镜像为一个压缩包
# 将镜像保存成压缩包
docker save -o abc.tar guignginx:v1.0# 别的机器加载这个镜像
docker load -i abc.tar# 离线安装
  1. 推送到远程仓库
docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname# 把旧镜像的名字,改成仓库要求的新版名字
docker tag guignginx:v1.0 leifengyang/guignginx:v1.0# 登录到docker hub
docker login       docker logout(推送完成镜像后退出)# 推送
docker push leifengyang/guignginx:v1.0# 别的机器下载
docker pull leifengyang/guignginx:v1.0
  1. 挂载数据到外部修改
docker run --name=mynginx   \
-d  --restart=always \
-p  88:80 -v /data/html:/usr/share/nginx/html:ro  \
nginxro 是只读模式,只能在/data/html 进行修改# 修改页面只需要去 主机的 /data/html
# 如果/data/html 为空,容器也为空,访问nginx会出现403, 需要建立index.html文件

补充

docker logs 容器名/id   排错docker exec -it 容器id /bin/bash# docker 经常修改nginx配置文件
docker run -d -p 80:80 \
-v /data/html:/usr/share/nginx/html:ro \
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf \
--name mynginx-02 \
nginx#把容器指定位置的东西复制出来 
docker cp 5eff66eec7e1:/etc/nginx/nginx.conf  /data/conf/nginx.conf
#把外面的内容复制到容器里面
docker cp  /data/conf/nginx.conf  5eff66eec7e1:/etc/nginx/nginx.conf

进阶实战

  1. 使用springboot 写个jar包

  2. 将应用打包成jar包

  3. DockerFile

FROM openjdk:8-jdk-slim
LABEL maintainer=leifengyangCOPY target/*.jar   /app.jarENTRYPOINT ["java","-jar","/app.jar"]
在当前目录下读取dockerfile 并执行镜像构建
docker build -t java-demo:v1.0 .
  1. 部署中间件
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]#redis使用自定义配置文件启动docker run -v /data/redis/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
-d --name myredis \
-p 6379:6379 \
redis:latest  redis-server /etc/redis/redis.conf# 我的redis 实例
docker run -v /opt/docker/etc/redis/redis1.conf:/etc/redis/redis.conf \
-v /opt/docker/data/redis1/data:/data \
-d --name myredis \
-p 6380:6379 \
redis:latest  redis-server /etc/redis/redis.conf注意开放6380安全组
  1. 启动容器
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0 
  1. 分享镜像
 登录docker hub
docker login#给旧镜像起名
docker tag java-demo:v1.0  leifengyang/java-demo:v1.0# 推送到docker hub
docker push leifengyang/java-demo:v1.0# 别的机器
docker pull leifengyang/java-demo:v1.0# 别的机器运行
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0 

k8s学习

在这里插入图片描述
k8s是一个容器编排管理系统

Kubernetes 为你提供了一个可弹性运行分布式系统的框架。 Kubernetes 会满足你的扩展要求、故障转移、部署模式等。 例如,Kubernetes 可以轻松管理系统的 Canary 部署。

k8s 一般运行于多个机器上

架构

Kubernetes Cluster = N MasterNode + N Worker Node:N主节点+N工作节点; N>=1

主节点可能有多个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

k8s 安装

在这里插入图片描述

http://www.lryc.cn/news/168606.html

相关文章:

  • 基于Yolov8的交通标志牌(TT100K)识别检测系统
  • 使用Python编写一个多线程的12306抢票程序
  • DT Paint Effects工具(三)
  • SpringBoot整合Mybatis
  • Java后端使用POST请求向mysql中插入Json数据的问题
  • 豆瓣图书评分数据的可视化分析
  • SpringBoot整合Easy-ES操作演示文档
  • IDEA控制台取消悬浮全局配置SpringBoot配置https
  • MySQL8--my.cnf配置文件的设置
  • Qt基于paintEvent自定义CharView
  • Mac FoneLab for Mac:轻松恢复iOS数据,专业工具助力生活
  • 代码随想录二刷day30
  • 工业检测 ocr
  • LVS负载均衡群集
  • 安卓截屏;前台服务
  • C++ PrimerPlus 复习 第八章 函数探幽
  • JavaScript-Ajax-axios-Xhr
  • 怎样查看kafka写数据送到topic是否成功
  • 腾讯mini项目-【指标监控服务重构】2023-08-16
  • PTA:7-3 两个递增链表的差集
  • 智能合约漏洞案例,DEI 漏洞复现
  • Attention is all you need 论文笔记
  • Hdoop伪分布式集群搭建
  • java临时文件
  • C++中的<string>头文件 和 <cstring>头文件简介
  • 安装MySQL
  • 输入学生成绩,函数返回最大元素的数组下标,求最高分学生成绩(输入负数表示输入结束)
  • 常用音频接口:TDM,PDM,I2S,PCM
  • git clone报错Failed to connect to github.com port 443 after 21055 ms:
  • 【操作系统】深入浅出死锁问题