Docker

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管理的最小单位,其中可以包含一个或多个相关的容器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值