docker安装教程
docker安装教程(centos)123456789101112131415161718192021222324251.更换yum源#里面找到你需要更换的系统版本,根据教程即可https://developer.aliyun.com/mirror/yum clean all #清除缓存 yum makecache #生成缓存2.更新系统yum update -y --exclud=kernel*3.安装所需的基础软件curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 4.将docker-ce的源换成国内阿里的yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repops:上述命令找不到的话先使用安装一些工具包 yum -y install yum-utilsyum makecache fast #更新缓存 5.安装docker- ...
docker简介
docker简介docker历史简述12在2010年得时候,几个年轻人凑到一块开了一个公司。公司名字是dotcloud.这个公司得主要技术点就是linux得容器技术,为了方便管理这些容器。该公司内部开开发得内部工具名字就是docker。但是由于该公司开始得时候业务并不是很景气,但是他们又不想放弃该技术。因此他们选择在2013年将docker开源。也因此越来越多得人开始使用docker。然后发现docker得好用之处,docker也因此变得红火起来
docker特点docker是用go语言进行得开发,然后使用得技术是容器化。
在docker之前我们使用得技术一般是虚拟机技术
容器化技术与虚拟机技术得区别虚拟机技术
容器化技术
由上面两图可以得知容器化技术相较于虚拟化技术,使用得是同一个计算机得内核,也正因为如此,容器化技术与虚拟机技术相比而言会小很多
docker优点123456781.应用更快速得交付和部署 打包镜像发布测试,一键运行2.更便捷得升级和扩缩容 项目打包为一个镜像,扩展 服务器a3.更简单得系统运维 容器化之后,开发,测试环境高度一致4.更高效得计算资源利用 是内核级 ...
docker镜像基础操作
docker镜像基础操作镜像获取12345镜像获取docker pull [image_name][:image_version]eg: docker pull nginx:1.17
查看镜像信息12345678910111213141516#查看本地主机上已有的镜像的基本信息docker imagesdocker images lsREPOSITORY TAG IMAGE ID CREATED SIZE镜像来源 镜像标签 镜像id 镜像创建时间 镜像大小参数:-a:列出所有(包括临时文件)镜像文件-q:仅显示 ID 信息--digests=true|false:列出镜像的数字摘要值#查看镜像详细信息,可以看到作者、id等docker inspect [REPOSITORY]#查看镜像历史,若构建信息过长,可以使用--no-trunc来输出完整信息docker history [REPOSITORY]
镜像添加tag12345镜像添加tagdocker tag redis:latest myredis:latestREPO ...
docker镜像加载原理
docker镜像加载原理UnionFS(联合文件系统)12UnionFS:Union文件系统是一种分层、轻量级并且高性能得文件系统,它支持对文件系统得修改,作为一次提交来一层层得叠加,同时可以将不同目录挂载到一个虚拟文件系统下,Union文件系统是docker镜像得基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体得应用镜像。特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终得文件系统会包含所有底层得文件和目录
原理1234567docker得镜像实际上是由一层一层得文件系统组成,这种层级得文件系统就是UnionFSbootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux刚启动时会加载bootfs文件系统,docker镜像得最底层就是bootfs。这一层与我们典型得linux/unix系统是一样得,包含boot加载器和内核。当boot加载完成之后整个内核都在内存中了,此时内存得使用权由bootf ...
docker可视化工具
docker可视化工具portainer(先用这个)
Rancher(CI/CD再用)
什么是portainer1234portainer就是docker得一个可视化工具,通过这个我们可以使用图形化界面去控制docker镜像启动命令: docker run -d -v "/var/run/docker.sock:/var/run/docker.sock" -p 8088:9000 portainer/portainer
docker网络
docker网络我们每启动一个docker容器,docker就会给容器分配一个ip,我们只要安装了docker.就会有一个网卡docker0桥接模式,使用的技术是veth-pair技术
什么是veth-pair12veth-pair(Virtual Ethernet)就是一对的虚拟设备接口,他们都是成对出现的,一段连着协议,一段彼此相连正因为有这个特性 veth-pair 充当一个桥梁
docker容器网络原理图示
ps:docker所有得网络都是虚拟得,虚拟得转发效率高
docker网络类型
docker网络模型
配置
说明
host模式
–network=host
容器和宿主机共享一个网络空间(Network namespace)
contain模式
–network=container:ID
容器和另外一个容器共享Network namespace
none模式
–network=none
容器有独立的Network namespace,但是并没有进行任何的网络设置
bridge模式
–network=bridge
当docker进程启动,会在主机上创建 ...
docker容器数据卷
容器数据卷首先我们思考一个场景,你有一个容器,里面装得是mysql,然后你一不小心将这个容器删除了。那么容器中得数据还在吗?
毫无疑问,这数据就没了。而为了解决这个问题。将数据持久化保存,我们可以了解docker得一个新知识点。卷技术,也就是目录得挂载。
这个技术可以帮助我们将容器内得目录,挂载到linux上面。保证数据得持久化,并且实现了容器之间得数据共享。
使用数据卷容器使用数据卷得方式进行绑定之后,等于进行了双向绑定,我们可以在外面进行修改操作,容器内部也会修改,同理修改容器内也会影响到容器外
方式一1docker run -v 主机内地址:容器内地址
具名和匿名挂载匿名挂载1234567匿名挂载就是你使用-v挂载路径得时候,只写了容器内得路径,没有写容器外eg: docker run -d -P --name nginx01 -v /etc/nginx nginx 我们可以使用下述命令查看volume得信息 docker volume ls docker volume inspect volume 名称
具名挂载123匿名挂载就是你使用-v挂载路径得时候 ...
alembic使用
alembic使用1flask官方对sqlachemy提供了一个类似django的迁移工具,这个迁移工具的名字就是alembic
安装1pip install alembic
初始化项目1alembic init 仓库名
修改对应文件12345678910根路径下alembic.ini找到下面那行并修改为你对应数据库的urlurl:sqlalchemy.url = mysql+pymysql://root:admin@localhost/alembic_demo项目下env.py找到下面这行,修改为你models.py中的 sqlachemy.metadatatarget_metadata = Noneeg: from animation.db.models import db target_metadata = db.metadata
进行数据迁移1234#生成迁移文件alembic revision -m "first commit" # -m为message#进行迁移alembic upgrade head
版本回滚1234alembic dow ...
flask-sqlalchemy简单使用
flask-sqlalchemy简单使用123456789101.安装pip install flask-sqlalchemy2.初始化对象from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()3.将flask对象注册进db中app.config["SQLALCHEMY_DATABASE_URI"] = 'sqlite:///' + os.path.join(base_dir, 'data.sqlite')db.init_app(app)
sqlachemy的配置
选项
说明
SQLALCHEMY_DATABASE_URI
用于连接的数据库 URI 。例如:sqlite:tmp/test.db 或 mysql://username:password@server/db
SQLALCHEMY_BINDS
一个映射 binds 到连接 URI 的字典。更多 binds 的信息见 用 Binds 操作多个数据库 。
SQLALCHEMY_ECHO
如果设置为 ...
uwsgi配置详解
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950master = true #启动主进程,来管理其他进程,其它的uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程。chdir = /web/www/mysite #在app加载前切换到当前目录, 指定运行目录module = mysite.wsgi # 加载一个WSGI模块,这里加载mysite/wsgi.py这个模块py-autoreload=1 #监控python模块mtime来触发重载 (只在开发时使用)lazy-apps=true #在每个worker而不是master中加载应用socket = /test/myapp.sock #指定socket文件,也可以指定为127.0.0.1:9000,这样就会监听到网络套 ...