Docker
1、搜索镜像
docker search mysql
2、拉取镜像
docker pull mysql:5.7
3、查看镜像
docker images
4、查看详情
docker inspect mysql:5.7
5、查看历史
docker history mysql:5.7
6、导出镜像
docker save -o /opt/abc mysql:5.7
7、删除镜像
docker rmi mysql:5.7
8、导入镜像
docker load -i /opt/ mysql:5.7
9
1、创建网络 docker network create neta 2、mysql 名字为db 密码123456 后台运行 docker run -it -d --name db --network neta -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 3、启动客服端名字为kh docekr run -it -d --network neta --rm --name kh /arey/mysqlcli bash 4、进入客户端 docker exec -it kh bash
10、备份容器
docker run centos:7 tar -cvf /opt/text.tar /tar/opt/ centos
docker run -rm --volumes-form db -v /opt/:/bkup
docker -it -d --name x1 --restart always --network net1 -e MYSQL_ROOT_PASSWORD=123456 mysql:57 docker -it --volume-from x2 -v /opt/bkup:/backup --rm centos:7 tar -cvf /backup/a.tar /mysql/lib
11、运行容器
运行容器docker run-it --rm -d --restart always --name -e --network -V --volumes-from 镜像容器中执行的命令
12、Dockerfile
# 使用 python 3.9 作为基础镜像 FROM python:3.9 # 将工作目录切换到 /app WORKDIR /app # 将当前目录下的所有文件复制到 /app COPY . /app # 安装依赖项 RUN pip install --no-cache-dir -r requirements.txt # 暴露端口 8000 EXPOSE 8000 # 定义环境变量 ENV NAME World # 启动应用 CMD ["python", "app.py"]
13、dockers-compose
docker-compose.yml: version:"3" services: redis: image:"redis:alpine" volumes: - vol-1:/data networks: - net-1 web: build:. ports: -"80:5000" networks: - net-1 volumes: vol-1:{} networks: net-1:{}
14、docker-compose命令
#查看配置文件 docker-compose config #前台启动 docker-compose up #后台启动 docker-compose up -d #查看执行状态 docker-compose ps #不刷新查看日志 docker-compose logs #动态刷新日志 docker-compose logs -f #停止容器 docker-compose stop #启动容器 docker-compose start #销毁容器 dockder-compose down #销毁数据卷 docker-compose down -v
综合复习
一、云计算
laas:基础设施服务
paas:平台及服务
SaaS:软件及服务
二、云类型
公有云、私有云、混合云、社区云
私有云安全高于公有云
三、云服务器
选购可选:cpu、 操作系统、内存大小
不可选:i/o设备
四、云计算基本特征(背)
简述云计算的基本特征有: 1自助式服务:用户可以自主申请和释放所需资源 2)随时随地使用:任何地方有网络接入就能使用 3)可度量的服务:用户只需要根据使用资源的多少和时长支付费用 4)快速资源扩缩:根据不同需求动态增减资源 5)资源池化:资源可在多用户之间共享使用,提高资源利用率
五、容器环境
1、linux优点 :开源、稳定、安全
缺点:图形界面不足
2、不同的linux之间差异主要是rootfs
3、docker可以部署到任何操作系统上,建议部署在linux
4、docker同虚拟机比较
优点:性能、启动速度、迁移性、资源占用少
缺点:隔离性
5、安装docker后
开机自启:systemctl enable docker
启动命令systemctl start docker
六、容器
1、docker 客户端和服务端可以在同一机器,也可以通过网络远程访问
2、容器核心技术:定义工具、容器仓库、容器规范
3、docker优势
应用程序快速、一致地交付。
响应式部署和伸缩应用程序
在同样的硬件运行更多的工作负载
能保证一致的用户界面
4、容器技术是一种开放的标准,有多种实现容器的引擎软件产品,Docker只是一种比较主流的实现。
5、虚拟机技术是基于系统的隔离,容器技术是基于进程的隔离。
6、Docker的核心组件包括 镜像、仓库、容器、客服端和服务端。
七、镜像
1、Docker官方的公有镜像仓库是docker Hub,地址是:hub.docker.com
2、在Docker中操作镜像时,可以用(镜像的名称/ID/镜像ID开始的部分字符串)作为镜像参数
3、docker images命令可以列出本地的镜像列表,-q选项只需列出容器镜像的ID
4、docker pull 命令缺省到docker 官方仓库pull镜像,一般设置镜像加速器
5、docker inspect 查看镜像详情
八、镜像构建
1、容器中删除一个镜像层的文件,只是设置了删除标记,文件未实际删除。例如一个大小为20M的镜像运行一个容器,在容器中删除一个5M的文件,然后用docker commit提交该为新镜像,新镜像略大于20M。
2、Dockerfile文件构建镜像时,COPY和ADD都可以加文件到镜像中;但对压缩文件ADD加入后可以自动解压,例如把hadoop.tar.gz放入镜像中,用ADD指令合适.
3、Dockerfile文件的缺省名称是Dockerfile,用缺省名称在docker build时不用指定文件名。如果用其他名称,docker build命令中需要用-f选项指定文件名。
4.构建自定义镜像有那两种方式?一般推荐采用的哪一种方式,为什么?
1)使用docker commit命令将容器提交为镜像。使用docker build命令根据Dockerfile文件构建镜像。
2)一般推荐采用Dockerfile构建自定义镜像的方式。
3)这是因为Dockerfile构建镜像的过程可以记录下每一步的操作,方便管理和维护;使用Dockerfile构建镜像便于使用版本控制工具进行版本管理。
九、容器
1.Dockerfile中,FROM指定基础镜像;RUN指定在构建时的临时容器中要运行的指令;COPY和ADD添加文件到镜像;CMD指定容器启动后执行的命令
2.Dockerfile构建镜像的指令中,FROM指定基础镜像;当无基础镜像时,需要用FROM scratch指令
3.简述编写Dockerfile文件的一般原则?
九、容器
1、docker exec命令只能进入正在运行的容器。
2、docker ps-a命令可以列出本地主机上的全部容器。
3、docker rm-f命令可删除正在运行的容器。
4、运行容器时可以限制容器可使用的资源,可以限制资源包括:CPU;内存;i/o这几种
5、容器由只读的镜像层和可读写的容器层组成,对容器镜像层数据的删除操作实际只是在容器层设置了删除标记,文件并未实际删除
6、docker run命令是创建命令docker create和启动命令docker start 这两条命令的结合体。运行容器可以用这两个命令 代替。
7、docker container prune 可以删除所有的已经停止的容器。
8、docker exec方式进入容器,用exit退出不会影响容器的运行。而用docker attach进入,exit退出会导致容器停止。
docker exec -it 容器名 bash docker attach 容器名
9、docker ps只能看到正在运行的容器,要查看所有容器的状态,命令是docker ps-a
九、容器命令
1、docker run运行容器时,--name可指定容器名称,如果不指定,会随机生成一个名称 --restart always 设置容器自动重启,
-it 容器为交互式运行,有交互终端
--rm选项表示容器停止后自动被删除。
2、查看容器状态:例如:刚运行一个容器,容器可能为运行状态或停止状态,要查看容器状态,可以用docker ps-a/ docker ps-I/docker ps-n3查看
3、组合命令 docker stop $(docker ps-aq)可以停止所有运行 的容器。
十、网络
1、在同一个Docker主机上容器之间需要实现网络通信,可选择的网络模式有:桥接网络\host网络\container网络,但如果容器之间网络 通讯量非常大,并且主机上运行容器很多,优先选择的网络模式是container模式
2、查看一个连接到桥接网络的容器IP地址有多种方式,包括查看网络详情、查看容器详情、进入容器内部用命令查看,启动新容器,用 container模式连接查看的容器,然后在新容器中查看
3、docker run启动容器时,不指定网络就使用的缺省桥接网络,网络上的容器间只能通过IP访问;用--network指定自定义的桥接网络, 这时容器间可以通过容器名和IP访问。
4、容器运行有多种网络模式,在host模式下,容器使用宿主机 的网络
5、本地网络模式主要有哪几种,请列出并分别说明特点? 1)none模式 此模式下,容器没有网络,与外部网络隔绝,只有本地环路。 2)host模式 使用此模式时,容器将使用主机的网络,即容器共用主机资源。具备最好的网络性能和最低的网络延迟。 3)container模式 共享容器的网络。方便容器之间的数据交互。 4)默认bridge模式 不指定时,容器都连接到默认bridge网络,所有该网络上的容器间能通过IP通讯,但不能通过名称通讯。 5)自定义bridge模式 运行容器时指定连接到自定义的桥接网络,不同的网络的容器是相互隔离的,同一个网络内容器间通过IP和容器名称通讯。
6.Docker中,采用overlay类型网络可实现夸主机的容器互通
十一、数据卷
1、数据卷的作用是实现了:数据持久化/容器间数据的共享/容器与宿主机间数据共享
2、文件名称或目录绑定挂载也可以在容器间共享数据,其劣势是不便于移植。
3、docker 可使用-v 来创建数据卷,一个容器可创建多个数据卷。
-v /data
-v /opt:/data
4、docker run 运行容器时,用--volumes-from挂载一数据卷容器,新容器就可以访问数据容器的数据卷,当停止数据容器后数据卷还可以访问。
十二、compose
1、docker compose配置文件默认名称是docker-compose.yml,如果不是这个名称,需要用一f选项指定
2、docker-compose down 命令用于停止并删除dockercompose up 命令启动的容器、网络但数据卷不删除。要将数据卷一起删除,加上-v或--volume选项
3、默认情况下,执行docker-compose down命令不会同时 删除数据卷
4、docker-compose ps命令可以查看服务中当前运行的容器
十三、k8s集群
1、2n+1个管理器节点的Swarm集群中最多允许同时失效的管理 器节点数是n,例如5个管理节点允许失效2个,7个允许3个
2、kubernetes是Goolge开源的容器编排引擎,一般简称为k8s
3、kubernetes集群中,master节点是管理节点,node 节点是集群的工 作节点,负责接收master节点的工作指令并执行相应任务
4、kubernetes中,Replication Controller(RC)除了保证应用持续运行外,还提供一些高级特性,如:弹性伸缩/动态扩容/滚动升级
5、kubernates中,滚动升级通过逐步替换的策略完成平滑 过渡升级,保证整体系统的稳定性。
6、k8s的kubectl工具的常用命令,并对功能进行简要说明(p193)
1)kubectl config-管理kubectl配置。 2)kubectl create-根据文件或者指定内容创建资源对象。 3)kubectl get-获取单个或多个资源对象的信息。 4)kubectl describe-获取资源对象的详细信息描述。 5)kubectl logs-输出Pod容器的日志信息。 6)kubectl exec-在Pod中执行指定命令。 7)kubectl edit-编辑资源对象的原始文件,以便修改其配置信息。 8)kubectl cp-从容器中复制文件,复制到本地或者其他容器中。
7、Node是kubernetes集群架构中运行Pod的服务节点,每个Node主要由多个模块组成,节点上包括:kube-proxy、kubelet、 docker引|擎(runtime)
8、k8s中同一个Pod内的容器可以共享网络名称空间和数据卷存储资源。
9、k8s中,弹性伸缩可根据负载的高低动态调整Pod的副本数量,满足业务的资源需求。
10、kubernetes集群的master节点是整个集群的网络中枢,负责 组件或服务进程的管理和控制。Pod是kubernetes管理的最小单位,其中可以包含一个或多个相关的容器。