首页 > 其他分享 >docker----( )

docker----( )

时间:2023-04-12 17:49:42浏览次数:29  
标签:容器 run 宿主机 ---- systemctl 镜像 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台机器
    -salstack:批量运维工具 cs架构
    -jenkins:流水线工具
    -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

.
.
.
.
.

2 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

.
.
.

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`
    

.
.
.
.
.
.

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端口
        
        


image-20230412113952919

image-20230412114649948

image-20230412114855784

image-20230412122857917

作业

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


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

标签:容器,run,宿主机,----,systemctl,镜像,docker
From: https://www.cnblogs.com/tengyifan888/p/17310553.html

相关文章

  • 美食菜谱APP开发步骤
    美食菜谱APP可以为用户提供各种美食菜谱、食材搭配、烹饪技巧、食材购买等信息,方便用户在家中制作美食。下面是美食菜谱APP开发的一些关键步骤:需求分析:确定用户在使用美食菜谱APP时的需求,比如搜索菜谱、查看食材搭配建议、烹饪步骤视频教程、购买食材等等。功能设计:基于用户......
  • node_exporter是怎么获得数据的
    exporter分为两类:独立和集成到应用,集成到应用的方式侵犯业务逻辑代码独立式数据流:[目标系统]->(采集监控数据、规范数据格式)[exporter]->(http轮询获取数据)[Prometheus]常见的exporter数据采集方式:1)文件方式:例如nodeexporter通过读取linux操作系统proc下各个目录中......
  • MFC-IsIconic判断窗口是否最小化
     HWNDhWnd=NULL;UINTfunc1(LPVOIDpParam)//线程函数{BOOLbb;for(inti=0;i<1000;i++){bb=IsIconic(hWnd);//判断窗口是否最小化/*参数1:HWNDhWnd窗口句柄返回值:已经最小化返回TRUE,......
  • 美食菜谱APP开发功能
    一个美食菜谱APP的主要功能可以包括以下几个方面:菜谱搜索:用户可以通过输入菜名、关键词或食材等信息,搜索到符合条件的菜谱。菜谱浏览:用户可以浏览各种菜谱,包括分类、标签、评分等信息,也可以查看详细的菜谱制作步骤和配料。食材推荐:基于用户的口味和需求,推荐适合的食材搭......
  • 图数据库驱动的基础设施运维实操
    本文系图技术在大型、复杂基础设施之中SRE/DevOps的实践参考,并以OpenStack系统之上的图数据库增强的运维案例为例,揭示图数据库、图算法在智能运维上的应用。本文所有示例代码开源。最近,有些尚未使用过图技术、DevOps/Infra领域的工程师在NebulaGraph社区询问是否有「图......
  • conda 环境
    安装完minconda后有一个默认的base环境bash进入condainfocondaconfig--remove-keychannels#恢复原镜像condaconfig--showchannelschannels:-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/-https://mirrors.tuna.tsinghua.edu.cn/anacon......
  • 存储流程设计节点相关参数
    https://github.com/bpmn-io/bpmn-fontbpmn图标https://cdn.staticaly.com/gh/bpmn-io/bpmn-font/master/dist/demo.htmlpaletteData.js/***存储流程设计相关参数*/exportdefaultclassBpmData{constructor(){this.controls=[]//设计器控件thi......
  • JFinal
    JFinal 下载地址:http://www.jfinal.com/project/1文档地址http://www.jfinal.com/upload/2.2/jfinal-2.2-all.zip开发流程 非常详细的开发文档:http://www.jfinal.com/doc ##step1:新建项目##新建项目/动态网站(DynamicWebServer) ,新建项目是选择J2EE1.4......
  • python自动化之unittest
    一、官方文档:https://docs.python.org/zh-cn/3/library/unittest.html二、unittest使用unittest使用规范需要导入unittest包测试类必须继承unittest.TestCase类测试方法必须要以test开头测试用例名称不能相同,相同的情况可能出现用例遗漏执行的情况ddt使用事项见下方......
  • thymeleaf 动态添加class样式
    根据后台所返回的数据动态调整样式1、th:class<labelth:class="${t.isRequired}==1?'col-sm-3control-labelis-required':'col-sm-3control-label'"th:text="${t.fieldTitle}+':'"></label>2、th:classappend&l......