上节回顾

# 1 flask-sqlalchemy
-flask中集成sqlalchemy
-session:要并发安全
-建立表模型,集成Base
-字段,字段参数,统统要导入 -flask-sqlalchemy:封装了一个类,只需要实例化得到对象
-配置信息:直接放到配置文件----》flask-sqlalchemy如何读出来的?
db = SQLAlchemy()
db.init_app(app) #把app传入,就能取到配置信息---》创建了engin--》生成了session
-对象.session
-对象.Model
-对象.字段 -使用步骤:
-0 配置文件配置连接信息
-1 导入SQLAlchemy 类
-2 实例化得到对象,db.init_app(app) 完成初始化
-3 视图函数中使用session db.session
-4 在models.py中建立表模型 继承db.Model
-5 创建出所有表
db.create_all() # 3 flask-migrate
-实现像django的orm一样做表和字段的迁移和记录
-init
-migrate
-upgrade # 4 演示一个项目 # 5 虚拟化
-混合云:公司自己有服务器(私有云),买了云服务器(公有云)
-kvm
-exsi
-openstack:python写的云平台,管理虚拟机
-docker:容器技术
-k8s:容器编排 -ansible:批量运维工具,基于ssh 超过500台机器 python+paramiko写的
-salstack:批量运维工具 cs架构 python+消息队列-批量操作服务器的软件
-jenkins:流水线工具
-连接到jenkins可以自动从gitlab远端拉下来代码,编译完成之后发送到要运行的服务器上。也可以实现,主分支发生变化,直接上线。
-CI(CI-Continuous integration,持续集成)
持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并切相互不影响工作。
持续集成的目的,是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成
-CD(CD-continuous deployment,持续部署)
是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表了一个开发团队的更新迭代速率
-gitlab:git远程仓库 -普罗米修斯:Prometheus+grafana ---》go写的监控软件,主要用来监控容器,监控进程
-zabbix:php 运维监控软件 # 6 docker 跟虚拟机区别
-docker 有自己的网络 # 7 docker 安装

今日内容

1 什么是Iaas-Paas和Saas

Iaas: Infrastructure-as-a-Service(基础设施即服务)
IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用
Paas:平台即服务
paaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等
Saas:软件即服务
-软件开发,部署,运维---》公司来做,卖给其他公司软件 FAAS:Function as a Service,"功能即服务"(也译作“函数即服务”)写函数 函数传输到平台上就行了 无服务器架构 serverless # 总结
基础设施建设iaas、pass oracle
-ibm,oracle,jboss+java项目
-阿里云:云服务器,云数据库,负载均衡 +项目
-卖软件服务:服务器,数据库,买账号 淘宝卖家
-软件即服务:无服务

2 docker 启动设置镜像

docker最核心的是做了网络的隔离、目录映射。

# systemctl status docker
停止状态 # 启动:
systemctl start docker # 远程仓库,下载镜像 ,国外:https://hub.docker.com---》下载比较慢--》设置国内镜像站
-https://cr.console.aliyun.com/cn-shanghai/instances/mirrors
# docker安装后会有 /etc/docker 文件夹
vim /etc/docker/daemon.json {
"registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
} sudo systemctl daemon-reload
sudo systemctl restart docker

每个容器都是有网络的,容器做了网络隔离(每个容器都有IP地址)。容器在宿主机启动了很多的容器。把容器看成轻量级的虚拟机。

从仓库拉下来镜像(文件),镜像运行成容器(启动了一个虚拟机,虚拟机里面运行了一个软件)。一个镜像可以运行成多个容器。在宿主机可以通过容器的IP地址通过SSH连接到容器。

2.1 启动与停止常用命令

# 启动docker:
systemctl start docker # 停止docker:
systemctl stop docker # 重启docker:
systemctl restart docker # 查看docker状态:
systemctl status docker # 开机启动:
systemctl enable docker # 查看docker概要信息
docker info # 查看docker帮助文档
docker --help

配置阿里云镜像站:每个人都有一个自己的地址。

3 镜像相关命令

# 1 查找镜像
-docker search 镜像名称
-建议去hub.docker.com 直接搜,更直观 # 2 拉取镜像,指定标签 tag
docker pull centos:7
如果不指定标签,会下载最新
docker pull centos
docker pull centos:latest # 3 查看本地镜像
docker images # 等同于 docker image ls # 4 删除镜像
docker rmi 镜像ID # 可以同时删多个 # 5 删除所有镜像
# 查出所有镜像的id号
docker rmi `docker images -q` # 一次性删除所有容器
docker rm `docker ps -aq` # 下面做了解
-自己制作了一个镜像,想传到自己的仓库里
- 把本地的镜像打个标签
docker tag 镜像id liuqingzheng/xxxx
docker login #输入用户名密码
docker push liuqingzheng/xxxx
你的仓库你就能看到了 # 镜像分层:好处 面试题
-镜像上传到远程仓库
-从远程仓库下载镜像
-做加速
-只要在容器中新增了文件,就会多一层 # 如何获取镜像:
- docker pull 拉取
- 压缩包还原
- 容器反打包成镜像
- dockerfile构建

拉取镜像、查看镜像:

只有网站存在的镜像才能拉取:

删除镜像:

删除所有镜像:

获取所有id号。

这两个命令组合,本质是:

docker rmi id号1 id号2 ...

4 容器相关命令

# 把镜像运行成容器,并且一个一个镜像,可以运行出多个容器

# 查看正在运行的容器
docker ps
# 查看所有容器
docker ps -a
# 查看最后一次运行的容器
docker ps -l # 运行容器(其实是两步:创建容器:create,运行容器:run)
-如果容器没有创建,直接执行run,就会创建并运行,所以你只需要会run就行了
-run 的时候,有很多参数
-i:表示运行容器
-t:表示容器启动后会进入容器命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器) --name :为创建的容器命名,如果不写,随机生成一个名字 -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射 docker run -id # 不会进入到容器内部
docker run -it # 会进入到容器内部 # 启动一个centos容器,名字叫mycentos,并且进入
docker run -it --name=mycentos centos:7
yum install vim -y # 在容器中装了vim软件
exit # 退出,容器停止了 # 启动一个centos容器,名字叫mycentos,不进入
docker run -id centos:7 # 启动容器
docker start mycentos # 进入到容器内部(本质是让容器执行命令)
docker exec 容器id 命令
docker exec f82e8578b9b1 ls docker exec -it f82e8578b9b1 /bin/bash # 进入到容器内部 # 退出
exit # -v参数:目录映射
docker run -id --name=lqz -v /home/lqz:/lqz centos:7
以后无论在宿主机还是容器中修改当前目录下的文件,都会相互影响 # -p参数:端口映射 容器中启动一个mysql5.7 --》容器中的3306监听,宿主机3306没人监听,做端口映射后,宿主机的3306就被docker的这个容器监听了
# 启动的mysql的root密码是123456 docker run -id --name=mysql -p 80:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 # netstat -nlp |grep 80 查看本机80端口占用情况
# 以后访问宿主机80端口就等于访问容器的3306端口

一个镜像可以产生多个容器。把一个容器看成一个轻量级的虚拟机:

目录映射:

端口映射:

访问宿主机的80端口,相当于访问容器内部的3306端口:

-t 表示直接进入容器环境了:

docker run -it

端口映射:

mysql容器监听容器的3306可以映射端口。访问宿主机的3306相当于访问容器的3306端口。

容器里面放的文件,宿主机是找不到的,进行了加密。类比虚拟机也是找不到相应的文件。

exit可以退出容器,容器会直接关闭。

用SSH连接需要安装SSH服务。

以不命名的方式启动第二个容器。

bin/bash:

ssh连接实际上是连接到bin/bash窗口:

-it分配交互式命令行:

查看容器中是否映射成功:

执行命令修改容器中的代码,宿主机的代码也会变化。

容器又可以做成镜像。

mysql启动的环境变量:

这一行相当于设置这个mysql的密码。

查看宿主机80端口:

访问宿主机80 ---> 进入容器3306

端口映射存在的问题。

库在容器里面,必须要将容器内的文件映射出来,否则容器删了,里面的所有文件就都没了。

练习

# 拉取一个centos镜像--》运行成容器---》在容器中安装python3.8

# 面试题:
1 wsgi uwsgi uWSGI,cgi,fastcgi 分别是什么?
2 如何自定制上下文管理器
3 Python是值传递还是引用传递

【docker】运维相关名词 Iaas-Paas和Saas docker镜像设置 启动与停止常用命令 镜像相关命令 容器相关命令的更多相关文章

  1. 新IT运维时代 | Docker运维之最佳实践-上篇

    容器技术的发展可以分为两个阶段,第一个阶段聚焦在IaaS层,仅仅把容器当做更轻量级虚拟机来使用,解决了应用运行时进程级资源隔离的问题:随着Docker的出现,容器虚拟化才有了统一的平台,由此容器技术发 ...

  2. 新IT运维时代 | Docker运维之最佳实践-下篇

    上篇针对操作系统.主机配置.容器镜像.容器运行时四大方面分享一些Docker的运维经验,本篇将着重在Docker Daemon参数和权限两个方面进一步分享.(阅读上篇请点击右侧:新IT运维时代 | D ...

  3. 什么是IaaS, PaaS和SaaS及其区别

    IaaS, PaaS和SaaS是云计算的三种服务模式. . SaaS:Software-as-a-Service(软件即服务)提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设 ...

  4. 一张图看懂IaaS, PaaS和SaaS的区别

    转至:https://blog.csdn.net/liujg79/article/details/84453736 编译:老夫子 原文:https://www.bmc.com/blogs/saas-v ...

  5. 从一到万的运维之路,说一说VM/Docker/Kubernetes/ServiceMesh

    摘要:本文从单机真机运营的历史讲起,逐步介绍虚拟化.容器化.Docker.Kubernetes.ServiceMesh的发展历程.并重点介绍了容器化阶段之后,各项重点技术的安装.使用.运维知识.可以说 ...

  6. 更优雅的配置:docker/运维/业务中的环境变量

    目录 docker-compose 环境变量 .env 文件 env_file docker stack 不支持基于文件的环境变量 envsubst envsubst.py 1. 使用行内键值对 2. ...

  7. Docker 运维高级应用管理

     Docker 基本应用 1.Docker 介绍及安装 2.Docket 使用命令 3.Docker run命令参数整理 4.Docker 构建镜像 Docker Compose 高级应用 1.Doc ...

  8. 企业云部署要如何选择IaaS PaaS和SaaS

    1为什么IaaS成了灵丹妙药   我非常惊讶,为什么很多传统企业已经接受了云计算,但接受的方式却往往不尽人意.对大多数企业来说,云计算的投入产出比相对较小,并且局限于基础设施层的环节. 就目前而言,大 ...

  9. 什么是云?Iaas,Paas和SaaS

    周围的朋友听说我是做云相关的,总是爱问啥是云?别不是虚幻的概念吧.云计算当然不是虚幻的概念,“云”其实是互联网的一个隐喻,简单地说,云计算是通过Internet(“云”)交付计算服务——服务器.存储. ...

  10. 云计算与虚拟化以及IaaS, PaaS和SaaS

    概述: 包括:服务器虚拟化.桌面虚拟化.应用虚拟化: 云计算只是用到了虚拟化的技术: soa dubbo结构,阿里巴巴的开源架构: netstat -ntlp; 云服务”现在已经快成了一个家喻户晓的词 ...

随机推荐

  1. 使用 PPO 算法进行 RLHF 的 N 步实现细节

    当下,RLHF/ChatGPT 已经变成了一个非常流行的话题.我们正在致力于更多有关 RLHF 的研究,这篇博客尝试复现 OpenAI 在 2019 年开源的原始 RLHF 代码库,其仓库位置位于 o ...

  2. Linux配置静态IP解决无法访问网络问题

    Linux系统安装成功之后只是单机无网络状态,我们需要配置Linux静态IP来确保服务器可以正常连接互联网 1.首先安装ifconfig Centos7安装成功后,高版本会把ping命令给移除了,所以 ...

  3. JAVA学习week1

    本周: 认识到Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对 ...

  4. Head First Java学习:第十一章-异常处理

    第十一章 异常处理 1.方法可以抓住其他方法所抛出的异常:异常总是丢回给调用方 有风险.会抛出异常的程序代码: 负责声明异常:创建Exception对象并抛出 调用该方法的程序代码: 在try中调用程 ...

  5. Chrome扩展开发系列开篇

    大家好,我是 dom 哥.这是我关于 Chrome 扩展开发的系列文章,感兴趣的可以 点个小星星. 浏览器现状 研究机构 Statcounter 发布了 2023 年 9 月报告,揭示了有关浏览器的最 ...

  6. Docker容器运行、使用、管理

    docker container [COMMAND] 命令: **exec 在容器中执行命令** export 将容器的文件系统导出为tar归档文件(和docker save的区别在于,save会记录 ...

  7. django模型不应该作为参数传递给task

    Django 模型对象.它们不应该作为任务的参数传递.当任务运行时从数据库重新获取对象几乎总是更好,因为使用旧数据可能会导致竞争条件. 想象一下以下场景,您有一篇文章和一个自动扩展其中一些缩写的任务: ...

  8. postman——请求与相应

    一.新建一个项目 直接点击左边栏上面的添加目录图标来新增一个根目录,这样就等于新建了一个项目,我们可以把一个项目或一个模块的用例都存放在这个目录之下,并且在根目录之下我们还可以在建立子目录来进行功能用 ...

  9. ElasticSearch之线程的数量

    ElasticSearch在运行过程中,涉及多种线程池.线程的使用,因此而需要给予足够的线程资源,保证ElasticSearch在需要时可以正常创建出线程. 查看Linux系统当前用户允许创建的线程的 ...

  10. ASR项目实战-交付过程中遇到的疑似内存泄漏问题

    基于Kaldi实现语音识别时,需要引入一款名为OpenFST的开源软件,本文中提到的内存问题,即和这款软件相关. 考虑到过程比较曲折,内容相对比较长,因此先说结论. 在做长时间的语音识别时,集成了Ka ...