【docker】运维相关名词 Iaas-Paas和Saas docker镜像设置 启动与停止常用命令 镜像相关命令 容器相关命令
上节回顾
# 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镜像设置 启动与停止常用命令 镜像相关命令 容器相关命令的更多相关文章
- 新IT运维时代 | Docker运维之最佳实践-上篇
容器技术的发展可以分为两个阶段,第一个阶段聚焦在IaaS层,仅仅把容器当做更轻量级虚拟机来使用,解决了应用运行时进程级资源隔离的问题:随着Docker的出现,容器虚拟化才有了统一的平台,由此容器技术发 ...
- 新IT运维时代 | Docker运维之最佳实践-下篇
上篇针对操作系统.主机配置.容器镜像.容器运行时四大方面分享一些Docker的运维经验,本篇将着重在Docker Daemon参数和权限两个方面进一步分享.(阅读上篇请点击右侧:新IT运维时代 | D ...
- 什么是IaaS, PaaS和SaaS及其区别
IaaS, PaaS和SaaS是云计算的三种服务模式. . SaaS:Software-as-a-Service(软件即服务)提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设 ...
- 一张图看懂IaaS, PaaS和SaaS的区别
转至:https://blog.csdn.net/liujg79/article/details/84453736 编译:老夫子 原文:https://www.bmc.com/blogs/saas-v ...
- 从一到万的运维之路,说一说VM/Docker/Kubernetes/ServiceMesh
摘要:本文从单机真机运营的历史讲起,逐步介绍虚拟化.容器化.Docker.Kubernetes.ServiceMesh的发展历程.并重点介绍了容器化阶段之后,各项重点技术的安装.使用.运维知识.可以说 ...
- 更优雅的配置:docker/运维/业务中的环境变量
目录 docker-compose 环境变量 .env 文件 env_file docker stack 不支持基于文件的环境变量 envsubst envsubst.py 1. 使用行内键值对 2. ...
- Docker 运维高级应用管理
Docker 基本应用 1.Docker 介绍及安装 2.Docket 使用命令 3.Docker run命令参数整理 4.Docker 构建镜像 Docker Compose 高级应用 1.Doc ...
- 企业云部署要如何选择IaaS PaaS和SaaS
1为什么IaaS成了灵丹妙药 我非常惊讶,为什么很多传统企业已经接受了云计算,但接受的方式却往往不尽人意.对大多数企业来说,云计算的投入产出比相对较小,并且局限于基础设施层的环节. 就目前而言,大 ...
- 什么是云?Iaas,Paas和SaaS
周围的朋友听说我是做云相关的,总是爱问啥是云?别不是虚幻的概念吧.云计算当然不是虚幻的概念,“云”其实是互联网的一个隐喻,简单地说,云计算是通过Internet(“云”)交付计算服务——服务器.存储. ...
- 云计算与虚拟化以及IaaS, PaaS和SaaS
概述: 包括:服务器虚拟化.桌面虚拟化.应用虚拟化: 云计算只是用到了虚拟化的技术: soa dubbo结构,阿里巴巴的开源架构: netstat -ntlp; 云服务”现在已经快成了一个家喻户晓的词 ...
随机推荐
- command_execution
前置知识 可以通过ping的TTL来判断系统的版本 判断了是Linux之后就使用Linux的连接命令来进行操作 这里直接全局搜索flag相关的文件 linux全局查询文件_linux全局查找某个文件- ...
- Util应用框架基础(六) - 日志记录(四) - 写入 Exceptionless
本文是Util应用框架日志记录的第四篇,介绍安装和写入 Exceptionless 日志系统的配置方法. Exceptionless 是一个日志管理系统,使用 Asp.Net Core 开发,比 Se ...
- JS 树形结构 根据子节点找到所有上级
需求:是根据子菜单找到所有他上级菜单 进行面包屑的回显 要求子节点里包含父级id 代码如下: parentTree(arr, id) { //arr 所有的树数据 id 某个子节点的id ...
- this.$router 与this.$route的区别
this.$router是Vue-Router的实例,需要导航到不同路由则用this.$router.push方法 this.$route为当前路由的跳转对象,包含当前路由的name.path.que ...
- 微前端、single-spa初探
微前端 微前端,前端这次词就不用多做解释了,这个概念的重点在于这个"微"字, 从字面意义上看,微是小的意思,小是相对于大的一个用于比较的形容词,所以通常是在项目庞大的情况下,才会考 ...
- 不懂乐理,也能扒谱,基于openvpi将mp3转换为midi乐谱(Python3.10)
所谓"扒谱"是指通过听歌或观看演奏视频等方式,逐步分析和还原音乐作品的曲谱或乐谱的过程.它是音乐学习和演奏的一种常见方法,通常由音乐爱好者.乐手或学生使用. 在扒谱的过程中,人们会 ...
- P2360 地下城主
题目大意 背景是逃离\(3D\)地下监狱,也就是三维样例,你可以前往所在小格的前方,后方,左方,右方,上层,下层的小格,'.'表示可走,'x'表示墙壁,'S'表示起点,'E'表示终点.每走一小格花费一 ...
- 大白话说Python+Flask入门(二)
写在前面 笔者技术真的很一般,也许只靠着笨鸟先飞的这种傻瓜坚持,才能在互联网行业侥幸的生存下来吧! 为什么这么说? 我曾不止一次在某群,看到说我写的东西一点技术含量都没有,而且很没营养,换作一年前的我 ...
- 使用reposync工具将yum安装包保存到本地的方法
使用reposync工具将yum安装包保存到本地的方法 版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin Anolis7/centos7 1.reposync 1.1. ...
- 🔥🔥Java开发者的Python快速实战指南:实用工具之PDF转DOCX文档(可视化界面)
首先,大家对Python语法的了解已经基本完成,现在我们需要开始进行各种练习.我为大家准备了一些练习题目,比如之前的向量数据库等,这些题目可以参考第三方的SDK来进行操作,文档也是比较完善的.这个过程 ...