上节回顾

# 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. 算法训练 字符串的展开(isdigit与islower的发现)

    在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于"d-h"或者"4-8"的字串,我 ...

  2. 4个LED流水灯

    #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 #include<intrins.h> //因为要用到左右移函数,所以加入这个头文件 ...

  3. 七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门

    前言 今天我们花费一个小时快速了解SQLite数据类型.SQLite常用命令和语法. 七天.NET 8操作SQLite入门到实战详细教程 第一天 SQLite 简介 第二天 在 Windows 上配置 ...

  4. [Ynoi2002] Goedel Machine

    题目描述 由于你不会设计哥德尔机,所以你决定先做一道数据结构题: 给定一个长度为 \(n\) 的序列 \(a_1\cdots a_n\).你需要回答 \(m\) 个询问,第 \(i\) 个询问给定一个 ...

  5. Tensorflow2.0实战之GAN

    本文主要带领读者了解生成对抗神经网络(GAN),并使用提供的face数据集训练网络 GAN 入门 自 2014 年 Ian Goodfellow 的<生成对抗网络(Generative Adve ...

  6. Mybatis-Flex核心功能之@Table

    1.能干啥? @Table 主要是用于给 Entity 实体类添加标识,用于描述 实体类 和 数据库表 的关系,以及对实体类进行的一些 功能辅助. 例如: 数据库有一张tb_member的会员表 这时 ...

  7. SpringBoot设置日志级别

    输出到控制台 logging: # 日志记录到文件中 file: # 指定文件名 name: server.log logback: rollingpolicy: # 指定文件大小 max-file- ...

  8. MySQL运维6-Mycat垂直分库

    一.垂直分库场景 场景:在业务系统中,涉及一下表结构,但是由于用户与订单每天都会产生大量的数据,单台服务器的数据存储以及处理能力是有限的,可以对数据库表进行拆分,原有数据库如下 说明1:整个业务系统中 ...

  9. 推荐给前端开发的 5 款 Chrome 扩展 🚀

    大家好,我是 dom 哥.这是我关于 Chrome 扩展开发的系列文章,感兴趣的可以 点个小星星. 工欲善其事,必先利其器.Chrome 可能是前端开发中使用最多的浏览器.在日常开发中,下列几款 Ch ...

  10. 华企盾DSC客户端连接服务器正常,控制台找不到客户端

    1.首先客户端查一下策略状态,看一下客户端在哪个组,是否在回收站,或者无策略组: 2.查看一下数据库的CLIENT_GROUP_TABLE_表中是否有查出来的组,CLIENT_GROUP_TABLE_ ...