docker,laas-pass和saas,docker启动设置镜像,镜像相关命令,容器相关命令
内容回顾
flask-sqlalchemy
flask中集成sqlalchemy
session要并发安全
建立表模型集成Base
字段,字段参数,统统需要导入
flask-sqlalchemy:封装了一个类,只需要实例化得到对象
配置信息:直接放到配置文件》flask-sqlalchemy如何读出来的
db = SQLAlchemy()
db.init_app(app)# 把app传入,就能去到配置信息》创建了engin》生成了session
对象.session
对象.Model
对象.字段
全都是SQLAlchemy内生成好的
使用步骤:
配置文件配置连接信息
导入SQLAlchemy类
实例化得到对象,db.init_app(app) 完成初始化
视图函数中使用session db.session
在model.py中建立表模型集成db.Model
创建出所有表
db.create_all()
flask-migrate
实现像django的orm一样做表和字段的迁移和记录
init
migrate (相当于django的makemigrations)
upgrade (相当于django的migrate)
虚拟化
kvm
exsi
openstack:python写的云平台,管理虚拟机
docker:容器技术
k8s:容器编排
ansible:批量运维工具,基于ssh 超过500台机器,性能会下降
salstack:批量运维工具 cs架构
jenkins:流水线工具
gitlab:git远程仓库
普罗米修斯:prometheus+grafans》go写的
zabbix:php 运维监控软件
docker根虚拟机区别
docker 有自己的网络
内容详情
什么是laas-paas和saas
laas:Infrastructure-as-a-Service(基础设施即服务)
aaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用
Paas:平台即服务
aaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等
saas:软件即服务
软件开发,部署,运维》公司来做,卖给其他公司软件
FAAS:Function as a Service,"功能即服务"(也译作“函数即服务”)
无服务架构:serverless
docker启动设置镜像
停止状态
systemctl status docker
启动:
systemctl start docker
远程仓库,下载镜像,国外https://hub.docker.com》下载比较慢》设置国外镜像站https://xxxx(这里是自己).mirror.aliyuncs.com【可以去这里自己申请一个https://cr.console.aliyun.com/cn-shanghai/instances/mirrors】
docker安装后会有/etc/docker文件夹
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
加载配置
sudo systemctl daemon-reload
重启
sudo systemctl restart docker
启动与停止常用命令
启动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
镜像相关命令
查找镜像
docker search 镜像名称
建议去hub.docker.com 直接搜索,更直观
拉取镜像,指定标签 tag
docker pull centos:7
如果不指定标签,会下载最新
docker pull centos
docker pull centos:latest
查看本地镜像
docker images # 等同于docker image ls
删除镜像
docker rmi 镜像ID # 可以同时删多个ID空格隔开
删除所有镜像
查出所有镜像的id号
docker rmi `docker images -q` (没事不要瞎执行)
容器相关命令
把镜像运行成容器,并且一个一个镜像,可以运行出多个容器
查看正在运行的容器
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容器,名字叫mycents,并且进入
docker run -it --name=mycentos centos:7.9.2009
解释,最后的是下载的【容器名称与标签】
yum install vim -y
在容器内安装vim软件
exit 退出,容器停止了
docker start mycentos
启动一个centos容器,不起名字,不进入
docker run -id centos:7.9.2009
进入到容器内部(本质是让容器执行命令)
docker exec 容器id(或者容器名称) 命令
docker exec 841b804de8d5 ls
用容器id进入
docker exec mycentos ls
用容器名进入
docker exec mycentos -it /bin/bash
进入到容器内部-i运行-t生成一个伪终端
exit退出终端一个一个退出
目录映射:-v参数
docker run -it --name=lqz -v /home/lqz:/lqz centos:7.9.2009
端口映射:-p参数
容器中启动一个mysql5.7》容器中的3306监听,宿主机3306没人监听,做端口映射后,宿主机的3306就被docker这个容器监听了
启动的mysql的root密码123456
docker run -id --name=mysql -p 8899:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.28
# netstat -nlp |grep 80 查看本机80端口占用情况
# 以后访问宿主机80端口就等于访问容器的3306端口