Docker-1.0>>>>>>初阶学习

2023-05-16

文章目录

      • Docker学习总结
        • 一、Docker的安装:
        • 二、Docker常用命令
          • 1、帮助命令:
          • 2、镜像命令:
          • 3、容器命令:
        • 三、镜像详解
        • 四、容器数据卷(持久化,数据共享)
          • 1、用命令添加数据卷
          • 2、DockerFile添加数据卷
          • 3、数据卷容器
        • 五、DockerFile
          • 1、DockerFile解析过程:
          • 2、保留字指令:
          • 3、实际案例:
        • 六、Docker常用安装
          • 1、tomcat
          • 2、Mysql
          • 3、Redis
        • 七、本地镜像发布阿里云

Docker学习总结

Docker三大组成: image(镜像)、container(容器)、repository(仓库)。

  1. 镜像:一个镜像可以有多个容器,每个镜像都有不同的tag(版本号)。
  2. 容器:是镜像的实例,一个镜像可以有多个容器,容器是简易版的lunix环境和在其中运行的应用程序。
  3. 仓库:集中存放image的地方
  4. 仓库注册服务器:存在着多个仓库

仓库又分公开仓库和私有仓库,最大的公开仓库是Docker Hub(基本不用,国外的网站),国内的公开仓库有:阿里云、网易云等

Dcoker与虚拟机的区别:

Docker容器虚拟机(VM)
操作系统与宿主机共享OS宿主机OS上运行虚拟机OS
存储大小镜像小,便于存储于传输镜像庞大
运行性能几乎无额外性能损失操作系统额外的CPU、内存消耗
一致性轻便、灵活、适应于lunix笨重,与虚拟化技术耦合度高
硬件亲和性面向软件开发者面向硬件运维者
部署速度快速,秒级较慢,10s以上,分钟级

一、Docker的安装:

  • 卸载已有的Docker:

    yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  • 安装gcc

    yum -y install gcc
    
  • 更新yum

    yum makecache fast
    

参考官方文档:
Docker官方文档
在lunix系统安装Docker必须是centos6.5以上,我的系统是centos7.6。

  • 1、安装所需软件包:

    yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
    
  • 2、设置仓库:
    官方仓库:

    yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
  • 3、安装Docer:

    yum install docker-ce docker-ce-cli containerd.io
    

一路Y就行

  • 4、配置网易镜像:
  1. 新建并编辑:

    vim /etc/docker/daemon.json
    
  2. 输入并保存:

    {
      "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    

    若提示错误,先创建文件

  3. 重新加载并重新启动Docker:

    systemctl start docker // 启动
    systemctl daemon-reload //重新加载
    systemctl restart docker // 重新启动
    
  4. 查看docker运行情况:

    docker info //查看docker详情,Registry Mirrors:可以看到刚刚修改的镜像
    ps -ef | grep docker // 显示docker进程
    
  5. docker初体验:

    docker run hello-world
    
  6. 设置docker开机启动

    systemctl enable docker
    
  7. 关闭docker开机启动

    systemctl disable docker
    

二、Docker常用命令

1、帮助命令:
  • docker version:查看docker版本
  • docker info:查看docker详情
  • docker --help:帮助命令
2、镜像命令:
  • docker images:本地镜像列表

    REPOSITORYTAGIMAGE IDCREATEDVIRTUAL SIZE
    镜像的仓库源镜像的标签镜像ID创建时间镜像大小
    同一个镜像有多个tag及多个版本,默认为lasted,用:来表示版本号
    参数选项:
    -a:列出本地镜像(含中间映射层)
    -q:只列出镜像的id
    -qa:组合健
    –digests:显示镜像的摘要信息
    – no-trunc:显示完整的镜像信息
  • docker search:官方镜像仓库搜索指定的镜像

    docker search tomcat
    
    NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED
    镜像名称描述点赞数是否为官方版本自动构建

    参数选项:
    -s:列出收藏数不小于指定值的镜像,例如;

    docker search -s 50 tomcat
    

    – no-trunc:显示完整的镜像信息
    –automated:只列出autjomated build类型的镜像

  • docker pull:从仓库下载镜像,不加版本号默认是最新版:

    docker pull tomcat
    
  • docker rmi:删除镜像,运行中的镜像会报错,需要加上 -f 强制删除:
    不加版本号默认删除的是最新版

    docker rmi -f  hello-world // 删除单个
    docker rmi -f  hello-world tomcat //删除多个
    docker rmi -f $(docker images -qa) // 删除全部
    
3、容器命令:
  • docker run:新建并启动一个容器
    参数选项:
    –name–:为容器指定一个名称
    -d:后台运行容器并返回ID,即启动守护式容器
    -i:以交互模式运行容器,通常与 -t 同时使用
    -t:为容器重新分配一个伪终端,通常与 -i 同时使用
    -P:随机端口映射
    -p:指定端口映射,有四种格式
    1> ip:hostPort:containerPort
    2> ip::contaimerPort
    3> hostPort:containerPort
    4> containerPort

    // 第一个8080是外部容器断开,第二个8080是内部tomcat默认端口
    docker run -it -p 8080:8080 tomcat
    
  • exit:退出容器,容器停止

  • Ctrl+P+Q:退出容器,容器不停止

  • docker ps:查看运行的容器
    参数选项:
    -a:列出所有正在运行和历史运行过的
    -l:显示最近创建的容器
    -n:显示最近n个创建的容器
    -q:静默模式,只显示容器编号
    – no-trunc:不截断输出
    组合使用:

    docker ps -lq
    docker ps -aq
    
  • docker start:启动容器

    docker start c7661da822b4  // 通过id启动容器
    
  • docker restart:重启容器

    docker restart c7661da822b4 
    
  • docker stop:停止容器,通过id或容器名

  • docker kill:强制停止容器

  • docker rm:删除已停止运行的容器

    docker rm -f  $(docker ps -a -q) // 删除所有的容器
    docker ps -a -q | xargs docker rm // 删除所有容器
    
  • docker logs :查看日志

    // 实时查看倒数5行的日志
    docker logs -t -f --tail 5 c7661da822b4
    
  • docker top:查看容器内进程

  • docker inspect:查看容器内部细节,json字符串显示

  • docker attach:进去容器并启动命令终端

  • docker exec:在容器外执行,并且返回结果

    docker exec c7661da822b4 ls -l
    
  • docker cp:从容器中复制到宿主机

  • docker commit:提交容器副本成为一个新的镜像

    参数选项:
    -m:" 提交的描述信息 "
    -a:" 作者 "

    // my是包名,1.2是版本号,tomcat01是自定义名称
    docker commit -a="smilevers" -m="del tomcat docs" xxxxx my/tomcat01:1.2
    
  • –restart=always :docker容器自启动

    // 启动时设置docker容器为自启动
    docker run --restart=always
    // 更新docker容器为自启动
    docker update --restart=always <CONTAINER ID>
    // 更新docker容器关闭自启动
    docker update --restart=no <CONTAINER ID>
    

三、镜像详解

    镜像是一种轻量级、可执行的独立软件包,==用来打包软件运行环境和基于运行环境开发的软件,==它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

  • UnionFS(联合文件系统):Union文件系统是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录的挂载到同一个虚拟文件系统下。Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于镜像(没有父镜像),可以制作各种具体的应用镜像。

  • 共用kernel(内核),bootfs引导完后就自己卸载,只留下rootfs。

  • 只读,

四、容器数据卷(持久化,数据共享)

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能绕过Union File System 提供一些用于持续存储或共享数据的特性。
卷的设计目的就是数据的持久化,完全独立于容器的生成周期,因此Docker不会再容器删除时删除其挂载的数据卷。

  • 1、数据卷可在容器之间共享或重用数据
  • 2、卷中的更改可以直接生效
  • 3、数据卷中的更改不会包含在镜像的更新中
  • 4、数据卷的生命周期一直持续到没有容器使用为止
1、用命令添加数据卷
// myDateVolume宿主机文件夹,dataVolumeContaimer容器中的文件夹
// 目录共享
docker run -it -v /myDateVolume:/dataVolumeContaimer centos
// 容器内只读
docker run -it -v /myDateVolume:/dataVolumeContaimer:ro centos
Docker挂载主机目录Docker访问出现cannot open directory .:Perimisson denied
解决方案:在挂载目录后多加一个 --privileged=true 参数即可:

docker run -it -v /myDateVolume:/dataVolumeContaimer --privileged=true centos
2、DockerFile添加数据卷

镜像描述文件

#volume test
FROM centos
VOLUME ["/dataVolumeContaimer1","/dataVolumeContainer2"]
CMD echo "finished,----------success1"
CMD /bin/bash

  • docker build:- f 默认文件名为Dockerfile则不需要写
// 根据dockerfile构建镜像,1.3是版本号,zzzyy是前缀,最后面需要加空格和点
docker build -f /mydocker/Dockerfile -t zzzyy/centos:1.3 .

默认会在宿主机上生成数据卷,通过docker inspect 查看

3、数据卷容器

命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器称之为数据卷容器。
1、创建父容器

docker run -it --name dc01  zzzyy/centos

2、创建子容器并集成父容器

docker run -it --name dc02 --volumes-from dc01 zzzyy/centos

数据卷的生命周期一直持续到没有容器使用为止,删除任何数据卷容器其他容器之间还会共享。

五、DockerFile

  • Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
  • 流程:编写dockerfile > 构建dockerfile镜像 > 运行镜像
1、DockerFile解析过程:

基础:

  • 1> 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
  • 2> 指令按照从上到下,顺序执行
  • 3> #表示注释
  • 4> 每条指令都会创建一个新的镜像层,并对镜像进行提交
    执行流程:
  • 1> docker从基础镜像运行一个容器
  • 2> 执行一条指令并对容器作出修改
  • 3> 执行类似docker commit的操作提交一个新的镜像层
  • 4> docker再基于刚提交的镜像运行一个新容器
  • 5> 执行dockerfile中的下一条指令直到所有指令都执行完成
2、保留字指令:
  • FROM:基础镜像,当前新镜像是基于哪个镜像的
  • MAINTAINER:镜像维护者的姓名和邮箱地址
  • RUN:容器构建时需要运行的命令
  • EXPOSE:当前容器对外暴露的端口号
  • WORKDIR:指定在创建容器后,终端默认登陆进来的工作目录,一个落脚点
  • ENV:在构建镜像过程中设置环境变量
  • ADD:将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
  • COPY:从构建上下文目录中的<源路径>文件或目录,复制到新一层镜像内的<目录路径>位置
  • VOLUME:数据卷,用于数据保存和持久化工作
  • CMD:指定一个容器启动时要运行的命令,只要最后一个会生效,会被docker run之后的参数替换
  • ENTRYPOINT:指定一个容器启动时要运行的命令,可以追加参数
  • ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发
3、实际案例:

Base镜像(scratch)
docker history:查看镜像历史,形成过程

  • 1、

    // 从本地镜像导入
    FROM centos
    // 作者信息
    MAINTAINER smilevers<smilevers@163.com>
    // 变量
    ENV MYPATH  /usr/local
    // 登陆进的工作目录
    WORKDIR $MYPATH
    // 安装vim
    RUN yum -y install vim
    // 安装网络环境
    RUN yum -y install net-tools
    // 设置对外暴露的端口
    EXPOSE 80
    // 容器运行的命令
    CMD echo $MYPATH
    CMD echo "success----------"
    CMD /bin/bash
    
  • 2、

    // 从本地镜像导入
    FROM centos
    // 安装curl
    RUN yum -y install curl
    // 容器运行的命令,可以追加参数
    ENTRYPOINT ["curl" ,"s" ,"http://ip.cn"]
    

    运行docker run命令是后面的参数可以追加到"s"后面

  • 3、

	// 从本地镜像导入
	FROM centos
	// 作者信息
	MAINTAINER smilevers<smilevers@163.com>
	// 把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下,并重命名
	COPY c.txt /usr/local/cincontainer.txt
	// 把tomcat和jdk添加到容器中,并解压
	ADD apache-tomcat-9.0.tar.gz  usr/local/
	ADD jdk-8u171-linux-x64.tar.gz  usr/local/
	// 配置java和tomcat的环境变量
	ENV JAVA_HOME /usr/local/jdk1.8.0_171
	ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
	ENV CATALINA_HOME /usr/lcoal/apache-tomcat-9.0.8
	ENV CATALINA_BASE /usr/lcoal/apache-tomcat-9.0.8
	ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
	// 设置一个变量
	ENV MYPATH  /usr/local
	// 登陆进的工作目录
	WORKDIR $MYPATH
	// 安装vim
	RUN yum -y install vim
	// 安装网络环境
	RUN yum -y install net-tools
	// 设置对外暴露的端口
	EXPOSE 80
	// 容器启动时运行tomcat
	# ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh"]
	# CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]
	CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out

  • 4、通过共享容器卷,发布web项目

六、Docker常用安装

1、tomcat
  • 1> 仓库拉取:
    docker pull tomcat
    
  • 2> 运行:
2、Mysql
  • 1> 仓库拉取:

    docker pull mysql:5.6
    
  • 2> 运行:

    docker run -p 3306:3306 --name mysql \
    -v /smilevers/mysql/conf:/etc/mysql/conf.d \
    -v /smilevers/mysql/logs:/logs \
    -v /smilevers/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD = root \
    -d mydql:5.6
    
  • 3> 数据备份:

    docker exec 容器id sh -c ' exec mysqldump --all-databases -uroot -p "root" ' > /smilevers/all-databases.sql
    
3、Redis
  • 1> 仓库拉取:

    docker pull redis:3.2
    
  • 2> 运行:

    docker run -p 6379:6379 \
    -v /smilevers/myredis/data:/data \
    -v /smilevers/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
    -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf \
    --appendonly yes // 开启持久化
    

七、本地镜像发布阿里云

  • 推送到阿里云
$ sudo docker login --username=smilevers registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/smilevers/mysql:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/smilevers/mysql:[镜像版本号]
  • 从阿里云拉取
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/smilevers/mysql:[镜像版本号]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker-1.0>>>>>>初阶学习 的相关文章

  • NVIDIA Jetson TX2 查看系统相关+运行demo

    1 查看Jetson TX2 L4T版本 xff1a head n 1 etc nv tegra release 2 查看系统版本 xff1a cat etc lsb release 3 查看系统内核 xff1a uname a 4 查看内
  • Docker镜像迁移至新的服务器(全部数据)

    1 找到你想移动的 Docker 容器的 ID 2 提交你的变更 xff0c 并且把容器保存成镜像 xff0c 命名为 newimage docker commit span class token number 3 span a09b25
  • 配置VNC环境在windows主机访问阿里云linux服务器

    配置VNC环境在windows主机访问阿里云linux服务器 虽然作为服务器使用更多的是使用字符终端连接服务器 xff0c 进行操作 xff0c 因为图形界面很消耗性能和资源 xff0c 但有的时候使用图形界面进行操作更为便捷 xff0c
  • pythondataframe输出小结

    在使用dataframe时遇到datafram在列太多的情况下总是自动换行显示的情况 xff0c 导致数据阅读困难 xff0c 效果如下 xff1a coding utf 8 import numpy as np import pandas
  • 聊聊 Redis 为什么构建自己的简单动态字符串 SDS

    我们知道 xff0c Redis 支持字符串 哈希 列表 集合和有序集合五种基本类型 那么我们如何把图片 音频 视频或者压缩文件等二进制数据保存到 Redis 中呢 xff1f 之前在使用 Memcached 缓存这类数据时是把它们转换成
  • 聊聊 Redis 高可用之持久化AOF和RDB分析

    Redis 持久化概述 Redis 是内存数据库 xff0c 数据都是存储在内存中 xff0c 为了避免进程退出导致数据的永久丢失 xff0c 需要定期将 Redis 中的数据以某种形式把内存中的数据保存到磁盘中 xff1b 当 Redis
  • mysqldump: Got error: 1044: Access denied for user XXXX when doing LOCK TABLES

    一 报错信息 在使用mysqldump 执行远程备份数据库的时候报如下错误 xff1a mysqldump Got error span class token number 1044 span Access denied span cla
  • jmap -heap [pid]运行报:Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException(不允许的操作)

    一 运行环境 操作系统 xff1a Ubuntu 5 4 0 6 Java版本 xff1a JDK8 二 执行命令 jmap heap span class token punctuation span pid号 span class to
  • chkconfig: command not found

    问题描述 在 ubuntu1 16 04 10 执行 chkconfig 命令报 chkconfig command not found 说明此服务上没有安装 chkconfig 执行如下命令进行安装 span class token fu
  • Docker 基础篇 之 安装

    一 Docker安装 查看 CentOS 内核版本 Docker 要求 CentOS 系统的内核版本高于3 10 执行如下命令查询 内核版本 span class token function uname span r span class
  • Java 基础 之 Valid 验证

    一 64 Valid 简介 Bean Validation 内置的校验器 校验器说明 64 Null被注解的元素必须为 null 64 NotNull被注解的元素必须不为 null 64 AssertTrue被注解的元素必须为 true 6
  • HttpURLConnection链接详解

    HttpURLConnection链接详解 一 简介 简单来说 xff0c HttpURLConnection 是 Java 提供的发起 HTTP 请求的基础类库 xff0c 提供了 HTTP 请求的基本功能 xff0c 不过封装的比较少
  • Apache HttpClient 详解

    1 简介 HttpClient 是 Apache Jakarta Common 下的子项目 xff0c 用来提供高效的 最新的 功能丰富的支持 HTTP 协议的客户端编程工具包 xff0c 并且它支持 HTTP 协议最新的版本和建议 Htt
  • OKHttp使用详解

    1 简介 OkHttp 是一个默认高效的 HTTP 客户端 xff1a HTTP 2 支持允许对同一主机的所有请求共享一个套接字 连接池减少了请求延迟 xff08 如果 HTTP 2 不可用 xff09 透明 GZIP 缩小了下载大小 响应
  • python二维码生成与扫码

    1 import qrcode img 61 qrcode make 34 hello world 34 img get image show img save 39 hello png 39 2 import qrcode qr 61 q
  • C语言可变参数(从stdarg.h到应用)

    1 什么是可变参数函数 在C语言编程中有时会遇到一些参数可变的函数 xff0c 例如printf scanf xff0c 其函数原型为 xff1a span class token keyword int span span class t
  • OkHttp 缓存实战

    1 简介 在实际业务中可能某些查询数据 xff0c 不经常变化 xff0c 为了节省流量 提高响应速度和增强用户体验等 xff0c 把变化频率小的数据缓存到本地 xff0c 以实现复用 OkHttp 的缓存功能使用起来也比较简单和灵活 xf
  • Feign 详解

    1 Feign 是什么 Feign是一个http请求调用的轻量级框架 xff0c 可以以Java接口注解的方式调用Http请求 Feign通过处理注解 xff0c 将请求模板化 xff0c 当实际调用的时候 xff0c 传入参数 xff0c
  • @Transactional 注解失效情况及解决办法

    一 64 Transactional 注解在了非 public 方法上 如下所示 64 Transactional修饰在了非public方法上 span class token annotation punctuation 64 Servi
  • @Transactional 事务加了 锁 为什么还有并发问题?

    一 原因分析 Spring 中通过在方法上添加注解 64 Transactional 可以很好的处理事务问题 Spring对此的处理原理是对 加了 64 Transactional 注解的方法 添加 AOP切面来时先事务管理的 而 sync

随机推荐

  • 聊聊微服务之什么是微服务及其好处

    一 什么是微服务 微服务就是一些协同工作的小而自治的服务 很小 xff0c 专注于做好一件事 在单一模块系统中 xff0c 随着新功能的增加 xff0c 代码库会越来越大 时间久了代码库会变得非常庞大 xff0c 以至于在什么地方修改都很困
  • RestTemplate 使用详解

    一 简介 常见的http客户端请求工具 xff1a JDK 自带 HttpURLConnectionApache HttpClientOKHttp 以上 工具虽然常用 xff0c 但对于 RESTful 操作相对不是太友好 所以 xff0c
  • BigDecimal 你使用对了吗

    背景 从事金融相关项目 xff0c 对BigDecimal应该是再熟悉不过了 xff0c 也有很多人因为不知道 不了解或使用不当导致资损事件发生 所以 xff0c 如果你从事金融相关项目 xff0c 或者你的项目中涉及到金额的计算 xff0
  • MySQL 中截取字符串的方法

    LEFT str len 从左边开始截取 xff0c 如果字符串为 null 则返回null str xff1a 被截取字符串 xff1b len xff1a 截取长度 span class token keyword SELECT spa
  • Redis 阻塞原因

    Redis 是典型的单线程架构 xff0c 所有的读写操作都是在一条主线程中完成的 当Redis用于高并发场景时 xff0c 这条线程就变的极其重要 如果它出现阻塞 xff0c 就会对应用带来致命的问题 当 Redis 出现阻塞时 xff0
  • 【pcl入门教程系列】之点云Concatenate

    简要说明 点云拼接 Concatenate 是指将点云进行累加在一起 xff0c 只是累加的方式不太一样 一种是点云的字段与维度完全一致 xff0c 数量可以不同 xff0c 两部分点云相加 xff0c 点云的数量增加了 另一种是点云的字段
  • python多线程

    单线程 from time import ctime sleep def music for i in range 2 print 34 I was listening to music s 34 ctime sleep 1 def mov
  • Nginx下配置Https证书详细过程

    一 Http与Https的区别 HTTP xff1a 是互联网上应用最为广泛的一种网络协议 xff0c 是一个客户端和服务器端请求和应答的标准 xff08 TCP xff09 xff0c 用于从WWW服务器传输超文本到本地浏览器的传输协议
  • SLAM学习记录:全局定位之gps说明

    这段时间因为各种事情耽误了 xff0c 好久没有进行更新了 xff0c 惭愧 xff01 前段时间在研究cartographer的定位建图模块 xff0c 在停更的时间主要再研究如何改善定位建图的效果 xff0c 也有一定的成效 xff0c
  • Windows操作系统名称与版本号汇总

    查看Windows系统版本号 xff1a 1 cmd xff1a winver 2 cmd xff1a systeminfo findstr Build 3 运行 xff1a dxdiag xff0c 可查看D3D版本 Windows操作系
  • 使用Onos+Ovs+Docker+Veth建立拓扑(2)

    使用Onos 43 Ovs 43 Docker 43 Veth建立拓扑 xff08 2 xff09 说明 首先在宿主机上安装一个带内核模块的ovs xff0c 然后在docker中安装一个不带内核的 这句话非常重要 可能存在的问题 Dock
  • 子网掩码 与同一网段

    子网掩码是必填的 子网掩码的作用 xff0c 通俗一点就是 就是用来分割子网和区分那些ip是同一个网段的 xff0c 那些不是同一网段的 以前以为ip地址的第三组数字就是网段 xff0c 其实大错特错了 其实同一网段指的是IP地址和子网掩码
  • 【人脸检测】OpenCV中的Haar+Adaboost级联分类器分解(一):Haar特征介绍

    最近由于工作原因 xff0c 需要研究OpenCV中的Adaboost级联分类器 我阅读了OpenCV中所有相关得代码 xff0c 包括检测和训练部分 xff0c 发现目前OpenCV中的Adaboost级联分类器代码有以下2个特点 xff
  • 认识 UML 类关系——依赖、关联、聚合、组合、泛化

    文章目录 1 依赖 xff08 Dependency xff09 2 关联 xff08 Association xff09 3 聚合 xff08 Aggregation xff09 4 组合 xff08 复合 xff0c Compositi
  • 常用开发软件及网站

    常用开发软件及网站 点击查看
  • 电商模式术语:ABC、B2B、B2C、C2C、B2M、M2C、B2A、C2A、O2O

    电商模式分类详解 一 ABC 英文单词 xff1a Agent xff08 代理商 xff09 Business xff08 商家 xff09 Consumer xff08 消费者 xff09 ABC 模式是新型电子商务模式的一种 xff0
  • TkMapper(通用mapper)

    TkMapper的配置及使用 TkMapper主要是做单标查询 xff0c 复杂的多表查询我们还得自己写sql 官方文档 xff1a 点击查看使用的是Springboot框架使用的数据库表ums permision xff1a idpidn
  • python两个 list 获取交集,并集,差集的方法

    1 获取两个list 的交集 方法一 a 61 2 3 4 5 b 61 2 5 8 tmp 61 val for val in a if val in b 列表推导式求的两个列表的交集 print tmp 2 5 方法二 print li
  • 报错:EL1007E: Property or field 'name' cannot be found on null

    SpringBoot集成thymeleaf做开发遇到的错误 Caused by org springframework expression spel SpelEvaluationException EL1007E Property or
  • Docker-1.0>>>>>>初阶学习

    文章目录 Docker学习总结一 Docker的安装 xff1a 二 Docker常用命令1 帮助命令 xff1a 2 镜像命令 xff1a 3 容器命令 xff1a 三 镜像详解四 容器数据卷 xff08 持久化 xff0c 数据共享 x