linux-docker

2023-10-26

unix liunx windows


# linux
	 文件系统 

    所有的资源都是目录在 /root 根目录下

## 一. 指令
    ip addr/ifconfig, cd, ls, vim
    sudo - 管理员身份
    \ - 代表换行输入
    pwd - 查看所在目录
    sudo systemtcl stop firewalld.service
    防火墙:
        firewall-cmd --state  防火墙状态
        systemctl enable/disable firewalld.service   防火墙开机自启/关闭
        systemctl start/stop firewalld.service       手动开启/关闭防火墙
        firewall-cmd --list-ports

---
### go语言
### shell编程
---
# docker
> 1.概述 

    官网: https://vuepress.mirror.docker-practice.com   https://docs.docker.com/get-started/overview/

> 2.在docker中安装的是 服务的容器 如: mysql容器(可移植)

> 3.docker运行机制

    Client 客户端-指令
    Docker Host 宿主机   images,docker daemon
        Containers  容器
        images      本地的镜像仓库
        Docker daemon docker的服务线程,处理客户端命令
    Registry    远程的镜像仓库

## 一. docker指令
> 1.基础指令

    docker build 创建镜像文件-images-到镜像服务器
    docker pull  从镜像服务器拿到本地
    docker run   运行容器-将镜像文件在容器中运行

> 2.克隆

    克隆之后的使用空间小,
    原始的linux可以再次克隆使用,

> 3.Yum 在线安装 仓库如:maven    包管理器

    1.卸载旧版
        sudo yum remove docker-ce docker-ce-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    2.安装一组工具
        sudo yum install -y yum-utils
    3.设置yum仓库
        sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
        sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    4.更新yum缓存
        sudo yum makecache fast

> 4.docker

    1.安装docker
        sudo yum install -y docker-ce docker-ce-cli containerd.io
        docker -v  查看docker
    2.启动docker
        sudo systemctl start/stop docker
    3.设置开机自启
        sudo systemctl enable/disenable docker
    4.镜像加速 - 修改配置文件 /etc/docker/daemon.json
        镜像-docker的Registry, 
        cat <<EOF > /etc/docker/daemon.json
        {
        "registry-mirrors": [
            "https://docker.mirrors.ustc.edu.cn",
            "http://hub-mirror.c.163.com"
        ],
        "max-concurrent-downloads": 10,
        "log-driver": "json-file",
        "log-level": "warn",
        "log-opts": {
            "max-size": "10m",
            "max-file": "3"
            },
        "data-root": "/var/lib/docker"
        }
        EOF
    5.重新加载docker配置
        sudo systemctl daemon-reload
    6.重启docker服务
        sudo systemctl restart docker
    7.查看镜像配置
        docker info
    8.验证docker 运行hello-world镜像
        sudo docker run hello-world   --会先下载镜像,启动容器containers
    9.检查docker本地镜像          docker images
    10.检查已启动docker镜像       docker ps
    11.查看所有docker镜像         docker ps -all
    12.停止docker某镜像服务       docker stop 服务id
    13.删除docker镜像
        docker image rm hello-world
    14.删除被占用的镜像-先删容器
        docker container rm 容器name/容器id
    15.docker镜像仓库
        https://hub.docker.com
    16.在docker镜像仓库下载资源(镜像文件)
        如: docker pull hello-world

> 5. 离线安装docker

    1.docker离线包
        https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
    2.离线安装工具
        https://github.com/Jrohy/docker-install/
    3.拷贝到centos
        # 进入 docker-install 文件夹
        cd docker-install

        # 为 docker-install 添加执行权限
        chmod +x install.sh

        # 安装
        ./install.sh -f docker-20.10.6.tgz
    4.镜像加速
        cat <<EOF > /etc/docker/daemon.json
        {
        "registry-mirrors": [
            "https://docker.mirrors.ustc.edu.cn",
            "http://hub-mirror.c.163.com"
        ],
        "max-concurrent-downloads": 10,
        "log-driver": "json-file",
        "log-level": "warn",
        "log-opts": {
            "max-size": "10m",
            "max-file": "3"
            },
        "data-root": "/var/lib/docker"
        }
        EOF
    5.重启docker
        # 重新加载docker配置
        sudo systemctl daemon-reload
        #重启docker服务
        sudo systemctl restart docker
	6.确认安装
        docker info
        docker run hello-world

## 二. 核心对象
> 1.镜像

    包含: 程序, 库, 资源, 配置, 配置参数(匿名卷,环境变量,用户)
    组成: 多层文件系统联合组成
    构建: 一层一层构建, 每一层包含该层需要的的东西, 构建后删除的文件只是标记删除了, 任何额外的东西在构建结束前删掉

> 2.容器

    容器是镜像运行时的载体, 
    创建, 启动, 停止, 删除, 暂停
    本质: 进程, 但和宿主机不同
    容器拥有: root文件系统, 网络配置, 进程空间, 用户id空间
    特性: 容器封装运行的应用比直接在宿主机运行更加安全

> 3.数据卷

    存储层: 容器运行自动创建, 随着容器消亡而消亡
    数据卷: 所有文件的写入操作, 读写跳过容器存储层
        特性: 1)性能稳定性更高, 2)独立于容器, 3)不会随着容器的额消亡而消亡

## 三. docker镜像操作
    docker pull centos:7
    docker images / docker image ls
    运行一个镜像创建容器: 
    docker run -it xxx(名/id) bash
        说明: -it i:交互式操作 t:终端, bash:进入程序,命令行窗口
    exit - 退出当前容器centos
    保存镜像:
        1) 本地创建目录: mkdir -p setup/centos -创建多级目录
        2) 导出/保存镜像: docker save centos:7 | gzip
        3) 导入镜像: docker load < centos7.tar.gz
## 四. docker容器操作
	第一次:使用镜像创建容器
	    运行:           docker run -it centos:7 bash
	    后台运行:       docker run -d centos:7
	    后台运行容器输出结果: docker ccontainer logs 802
	创建容器之后运行:
	    运行/停止/重启:           docker container start/stop/restart 802
	    进入指定容器:    docker exec -it 802 bash
	    删除运行中容器:  docker container rm -f 802
	    清理所有终止状态容器: docker container prune

## 五. docker数据卷操作
    1.容器中管理数据 
        1) 挂载书籍目录(docker run -v 宿主机目录:容器目录)
        2) 数据卷, 创建时也是存储在宿主机目录
    2.特殊目录, 容器之间共享
    3.操作
        a.创建数据卷: docker volume create container-vol
        b.查看:       docker volume ls
        c.查看指定数据卷信息: docker volume inspect container-vol
        d.启动挂载数据卷的容器:
            docker run -it --mount source=container-vol,target=/root centos:7 bash
            docker run -it -v container-vol:/root centos:7 bash
        e.删除: docker voiume rm container-vol
        f.清理: docker volume prune

        g.挂载主机目录: 
            docker run -it -v /usr/app:/opt/app centos:7 bash
        h.查看挂载目录:
            docker inspect 容器id
        
        

        i.数据卷与容器
            创建数据卷   docker volume create container-vol
            -> 启动挂载数据卷的容器    docker run -it -v container-vol:/root centos:7 bash    解释: container-vol:/root中 container-vol是宿主机目录,/root是容器中的目录     
            -> 进入容器打开挂载点目录  cd /root
            -> 挂载点目录下创建文件    touch hello.java
            -> 退出容器                exit
            -> 在本地目录(Mountpoint)下可以找到创建的文件
                                        cd /var/lib/docker/volumes/container-vol/_data
            启动容器  docker start 容器id
            -> 进入容器          docker exec -it 容器id bash
            -> 进入挂载点目录    cd /root
            -> 创建文件          touch nihao.java
            -> 退出容器                exit
            -> 在本地目录(Mountpoint)下可以找到创建的文件
                                        cd /var/lib/docker/volumes/container-vol/_data

        j.挂载主机目录 与 容器
            docker run -it -v /usr/app:/opt/app centos:7 bash

            已存在的容器挂载主机目录 ???????
        
        k.查看 数据卷/容器 信息
            docker volume inspect container-vol
            docker inspect 容器id

## 六. Dockerfile文件
    1.概述
        dockerfile文件是用来构建镜像的文本文件, 
## 七. 制作镜像  jdk
    1.准备
        1) centos:7镜像
        2) jdk压缩包 jdk-8u51-linux-x64.tar.gz
    2.Dockerfile文件
        创建: touch Dockerfile  ---Dockerfile 和资源放在一起 
        打开: vim Dockerfile
        编辑:
            FROM centos:7
            ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker   
                    --通过ADD命令将宿主机中的压缩包传入镜像容器中的指定目录,并同时解压缩
            ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
                        --设置环境变量(通过ENV关键字实现,目录启动容器中的目录)
            CMD [‘bash’]    --指定命令行操作(所有指令与后面内容要有空格)

	Dockerfile文件内容:
		FROM centos:7
		ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
		ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
		    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
		CMD ['bash']

    3.构造镜像
        docker build -t jdk:8 .    --使用 Dockerfile 构建镜像(在Dockerfile所在目录执行docker指令)

    4.运行
        docker run -it jdk:8 bash

    5.查看镜像
        docker info

    6. 导出: docker save  jdk:8 | gzip > jdk8.tar.gz  
    7. 导入: docker load < jdk8.tar.gz
    
    8.jvm虚拟机 oracle
        java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

    9.运行java程序
        javac -d . Hello.java
        java 包名.Hello 
    
    10.制作sentinel镜像
		FROM centos:7
		ADD jdk-8u51-linux-x64.tar.gz  /usr/local/
		ADD sentinel-dashboard-1.8.0.jar  /usr/local/
		ENV JAVA_HOME=/usr/local/jdk1.8.0_51 \
		    PATH=/usr/local/jdk1.8.0_51/bin:$PATH
		EXPOSE 8080
		ENTRYPOINT ["java","-jar","/usr/local/sentinel-dashboard-1.8.0.jar"]
	11.制作镜像:
		docker build -t sentinel:8 .
	12.运行:
		docker run -d -p 8180:8080 --name sentinel  \
		-v /usr/local/docker/sentinel/logs:/root/logs/csp sentinel:8
          


## 六. 部署的服务 的指令
> 1.jdk
###
    a. centos:7
    b. jdk-8u51-linux-x64.tar.gz
    c. Dockerfile
    d. docker build -t jdk:8 .
    e. docker run -it jdk:8 bash
> 2.sentinel
###
    a. 拷贝sentinel文件
    b. 运行
		docker run –d  -p 8180:8080 --name sentinel \
		–v /root/mytest/sentinel:/usr/sca jdk:8 \
		java –jar /usr/sca/sentinel-dashboard-1.8.0.jar
		        说明: /root/mytest/sentinel:/usr/sca jdk:8 java –jar /usr/sca/sentinel-dashboard-1.8.0.jar
		                jar包所在位置(本地目录) : 容器 /usr/sca
> 3.mysql
###
    a. 官网 拉取 sudo docker pull mysql:8.0.23
    b. sudo docker images
    c. 启动
			sudo docker run -p 3306:3306 --name mysql \
			-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
			-v /usr/local/docker/mysql/conf:/etc/mysql \
			-v /usr/local/docker/mysql/logs:/var/log/mysql \
			-v /usr/local/docker/mysql/data:/var/lib/mysql \
			-e MYSQL_ROOT_PASSWORD=root \
			-d mysql:8.0.23

    d. docker start/stop/restart mysql
    e. 进入mysql容器 sudo docker exec -it mysql bash
    f. mysql -uroot -proot
    g. 开机自启 docker update mysql --restart=always
    h. whereis mysql
    i. window连接linux的mysql
        create user 'zhaoqing'@'%' identified by 'zhaoqing';
        grant all on *.* to 'zhaoqing'@'%';
        window平台:
            mysql -uzhaoqing -h192.168.126.132 -pzhaoqing
        出错:
            ALTER USER 'tony'@'%' IDENTIFIED BY 'tony' PASSWORD EXPIRE NEVER;
            ALTER USER 'tony'@'%' IDENTIFIED WITH mysql_native_password BY 'tony'; 
            FLUSH  PRIVILEGES;

> 4.redis
###
    a. docker pull redis
    b. mkdir -p /root/mytest/redis/01/conf
    c. touch /root/mytest/redis/01/conf/redis.conf
    d. docker run -p 6379:6379 --name redisone \
       -v /root/mytest/redis/one/data:/data \
       -v /root/mytest/redis/one/conf/redis.conf:/etc/redis/redis.conf \
       -d redis redis-server /etc/redis/redis.conf
    e. docker exec -it redisone bash
    f. Redis-server -v / redis-cli -v
    g. 登录: redis-cli   / docker exec -it redis redis-cli
    h. docker start/restart/stop redis

> 5.nginx
### 
    a. docker pull nginx
    b. docker run -p 80:80 --name nginx -d nginx
    c. docker exec nginx ls -l /etc/nginx
    d. 拷贝配置文件: docker cp -a nginx:/etc/nginx /root/mytest/nginx
    e. 删除: docker rm -f nginx
    f. 启动:
		sudo docker run -p 80:80 --restart always --name nginx \
		-v /root/mytest/nginx/:/etc/nginx/ \
		-v /root/mytest/nginx/conf.d:/etc/nginx/conf.d \
		-d nginx
    g. 修改配置:
        直接在本地目录对应的位置修改

> 6.nacos
###
    a. docker pull nacos/nscos-server:1.4.1
    b. nacos的数据库 nacos-mysql.sql 使用mysql执行
        /var/lib/mysql-files      /usr/local/docker/mysql/mysql-files
        cp nacos-mysql.sql  /usr/local/docker/mysql/mysql-files/nacos-mysql.sql
    c. 启动
			docker run  \
			-e TZ="Asia/Shanghai" \
			-e MODE=standalone \
			-e SPRING_DATASOURCE_PLATFORM=mysql \
			-e MYSQL_DATABASE_NUM=1 \
			-e MYSQL_SERVICE_HOST=192.168.126.132 \
			-e MYSQL_SERVICE_PORT=3306 \
			-e MYSQL_SERVICE_USER=root \
			-e MYSQL_SERVICE_PASSWORD=root \
			-e MYSQL_SERVICE_DB_NAME=nacos_config \
			-p 8848:8848 \
			--name nacos \
			--restart=always \
			-d nacos/nacos-server:1.4.1

    d. 日志: 容器内  /home/nacos/logs/start.out
        docker container logs 容器id




---
# 需要部署的服务
    镜像--centos:7
    jdk  --自己构建镜像
    mysql
    sentinel
    redis
    nginx
    nacos

	-e
	-i -t -d 
	-v 
	-p


# linux部署服务  学的
1. 克隆centos7(在克隆的宿主机中部署)
2. yum         卸载,安装,仓库,更新缓存
3. docker      yum安装,启动,开机自启,镜像加速,重新加载配置,重启,
4. images      镜像. 拉取,创建,运行,导出,导入
5. container   容器. 运行镜像创建容器,运行,停止,进入,删除,清理所有
6. volume      数据卷. 创建,查看,查看信息,启动挂载数据卷的容器,删除,清理
7. 挂载宿主机目录  挂载,查看
8. 制作镜像     centos:7,jdk压缩包,Dockerfile
9. jdk          centos:7,jdk压缩包,Dockerfile
10. mysql       pull,run,exec,登录
11. sentinel    jdk:8运行jar包
12. redis       pull,挂载,运行,exec,登录
13. nginx       pull,运行,配置文件,删除,挂载运行
14. nacos       pull,数据库,启动,日志
15. 容器互联     宿主机通讯/虚拟网络
16. 虚拟网络     创建,创建容器加入虚拟网络



# Docker容器互联  -> redis集群
> nacos连接数据库  
    8848 -> nacos -> 3306 -> mysql
## yi.通过宿主机进行通讯
    容器中的端口映射到宿主机
    其他容器通过 映射到宿主机上的端口 进行访问别的容器
## er.容器之间直接通过虚拟网络,在docker中创建网络
    1. docker 中创建网络
        docker network create -d bridge 网络名    -d driver,网络类型,默认 bridge
    2. 查看 
        docker network ls
        docker inspect 网络id
    3. 创建容器 加入 t-net 网络
        终端1   docker run -it --name app1 --network t-net centos:7
        终端2   docker run -it --name app2 --network t-net centos:7
    4. 测试
        ping app1  ping app2





---
## Docker
### 安装的 image containers volumes network
### -> 存放在宿主机 /var/lib/docker 下
    docker history sentinel:8
---
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux-docker 的相关文章

  • 来自外部 .diff 文件的交互式补丁

    Linux 是否有命令或程序允许交互式地修补源代码 在屏幕上打印每个块并在将其应用到文件之前等待确认 就像是git add p 但是从另一个 diff 文件中进行更改 您始终可以在 shell ruby python 中编写脚本 逐行读取该
  • mod_fcgid + PHP + apache 锁定

    我正在运行一个相当典型的 LAMP 堆栈 其中 PHP 通过 mod fcgid 运行 考虑到服务器收到的流量 我认为服务器处于 高负载 状态 存在一个间歇性问题 当访问依赖 PHP 的站点时 Apache 报告所有连接都处于 正在发送内容
  • 安装pipenv导致pip3无法使用

    我安装了pipenv using pip3 install pipenv 这给了我错误ImportError cannot import name main 为了解决这个错误我遵循这些说明 https stackoverflow com q
  • Kubernetes:是否可以在 Kubernetes 集群中通过单个请求访问多个 Pod

    我想清除 Kubernetes 命名空间中所有 Pod 中的缓存 我想向端点发送一个请求 然后该端点将向命名空间中的所有 Pod 发送 HTTP 调用以清除缓存 目前 我只能使用 Kubernetes 命中一个 pod 并且无法控制哪个 p
  • find 命令的“exec”功能可以在后台启动程序吗?

    我想做这样的事情 find iname Advanced Linux Program exec kpdf 可能的 还有其他类似的方法吗 首先 它不会像你输入的那样工作 因为 shell 会将其解释为 find iname Advanced
  • 如何在 Docker 容器中运行 Nginx 而不停止?

    我在 Docker 容器上安装了 Nginx 并尝试像这样运行它 docker run i t p 80 80 mydockerimage usr sbin nginx 问题是 Nginx 的工作方式是 初始进程立即生成一个 Nginx 主
  • 如何在docker for windows中访问主机中的卷

    我在 WSL 中运行 Windows 和 ubuntu 的 docker 当我运行以下命令时 docker volume create test docker volume inspect test 我得到以下输出 Driver local
  • openssh-server 未在 Docker 容器中启动

    我有一个奇怪的问题 我无法 ssh 到具有 IP 地址的 docker 容器172 17 0 61 我收到以下错误 ssh 172 17 0 61 ssh connect to host 172 17 0 61 port 22 Connec
  • 你能在 MS Windows 上用 Python 将 stdin 作为文件打开吗?

    在 Linux 上 我使用 subbprocess Popen 来运行应用程序 该应用程序的命令行需要输入文件的路径 我了解到我可以将路径 dev stdin 传递到命令行 然后使用 Python 的 subproc stdin write
  • 堆内存和Slab分配

    我很困惑heap and free list 我有几个问题 我对C中malloc的工作原理有自己的理解 如果我错了 请纠正我 堆内存是否被组织为数据的链表 空闲列表 块 堆内存和空闲列表有区别吗 我对存储分配的理解 有待改进 当我们调用ma
  • Amazon ECS - 在 Docker 入口点上使用 IAM 角色时权限被拒绝

    我正在寻找一种将机密 证书注入 Amazon ECS 容器的方法 就我而言 它是一个简单的 nginx 容器 我一直在使用 AWS Parameter Store 关注这篇文章 https aws amazon com blogs comp
  • 如何重新安装最新的cmake版本?

    我想在Linux环境下安装cmake的最新版本 我安装了 cmake 3 5 版 但某些应用程序不支持 我尝试通过卸载当前版本来升级它 但是当我使用 sudo apt get install cmake 重新安装时 我重新安装了相同的版本
  • 在内核模块中执行shell命令

    是否可以在内核模块中执行shell命令 我知道我们可以在用户空间 C 代码中使用system子程序 我正在调试一个存在内存泄漏问题的内核模块 在无限循环中执行 insmod 和 rmmod module ko 后 8G RAM 的系统在几分
  • Android Studio无法更新

    我正在运行 Mint 14 Linux 并且在使用 Android Studio 时遇到了一个主要问题 运行更新功能时 所有软件包都会返回 访问被拒绝 状态 我怎样才能解决这个问题 如何授予下载和安装的权限 附加信息 studio sh 正
  • 如何有效地将许多文件移动到新服务器?

    我正在更换托管提供商 需要将数百万个上传的文件传输到新服务器 所有文件都位于同一目录中 是的 你读对了 过去我这样做过 压缩源服务器中的所有文件 scp到新服务器的 zip Unzip Move directory to appropria
  • pthread_create 编译返回错误

    我使用以下代码创建两个线程 header files include
  • Docker:内存文件系统

    我有一个 docker 容器 它对磁盘进行大量读 写操作 我想测试当我的整个 docker 文件系统都在内存中时会发生什么 我在这里看到一些答案说这不会是真正的性能改进 但这是为了测试 我想测试的理想解决方案是共享每个图像的公共部分 并在需
  • Docker 应用程序更新后无法连接到数据库

    在我的公司 我有一个旧的 Symfony 应用程序在 Docker 容器中运行 该应用程序连接到一个 SQL 数据库 该数据库也在 Docker 容器内运行 该图像是使用 php 7 2 apache stretch 构建的 但该版本已不再
  • 如何在 Python 中将列表变量传递给 subprocess.call 命令

    我有一个清单 apps apps append wq35a5huqlja45jsyukrpmwuiayovrmh apps append q7mimvgduueernwvw4y22t5huemykntw apps append pmudbp
  • 使用“容器ip”连接到docker容器

    我在 mac 上运行 docker 我想使用 docker 容器的 ip 不是虚拟机的 ip 连接到它 原因是 Spark 驱动程序将自身注册到容器 IP 172 17 0 2 并且从 mac 运行的客户端尝试连接到该地址 有没有办法从 m

随机推荐

  • SpringBoot整合Shiro

    一 pom xml引入依赖 1 shiro依赖
  • python3+tkinter实践历程(四)——模仿CRT完成基于socket通信与tkinter的TCP串口客户端

    python3 tkinter实践历程 四 基于socket通信与tkinter的TCP串口客户端 仿CRT 文章目录 系列文章目录 分享背景 制作背景 最终功能 工具截图展示 代码详解 系列文章目录 python3 tkinter实践历程
  • 天龙八部手游服务器维护公告,天龙八部手游更新维护公告 龙腾迎春全新资料片来袭...

    天龙八部手游终于迎来全新资料片 龙腾迎春啦 本次更新将加入全新帮派副本决战少室山 并且玩家们可以觉醒独特的至尊武魂 玩家们可以凭自己的喜好改变武魂的外观 一起来了解一下详细更新内容吧 更新时间 1月31日4 00 8 00 更新奖励 300
  • 查看表被数据库中其他对象使用

    select from dba dependencies where referenced name upper xxx
  • java求六位数以内所有自幂数

    如果在一个固定的进制中 一个n位自然数等于自身各个数位上数字的n次幂之和 则称此数为自幂数 以下用java语言求六位数以内所有自幂数 独身数共有9个 1 2 3 4 5 6 7 8 9 水仙花数共有4个 153 370 371 407 四叶
  • angular.js中的复选框checkbox的用法

    首先在head里引入 页面部分 div div div div
  • RestfulTool插件使用详解

    1 全局搜索 2 提供了一个 Services tree 的API接口显示窗口 右侧会有RestServices侧边栏 点击后会显示当前项目所有请求地址 可以进行输入查询 然后会直接把请求方式 地址以及参数列出来 默认请求服务器为本机 lo
  • 【python】socket-传输多个文件、大文件

    socket 传输多个文件 大文件 0 前言 1 发送单个文件流程 2 关于发送大文件 本地读取时报错 MemoryError 3 关于粘包 问题背景 排错过程 解决方案 4 备注 换算表 0 前言 看过挺多个发文件的例子 但是基本都是发单
  • 每日博客 :>

    1 交换数组 define CRT SECURE NO WARNINGS 1 include
  • 计算机网络34-学习笔记-IP地址

    IP地址属于网络层 这里主要介绍IP地址作用 与MAC地址配合 主机H1将数据包发送给路由器R1 在网络层封装的IP数据报首部中 源IP地址应填写主机H1的IP地址IP1 目的IP地址应填写主机H2的IP地址IP2 在数据链路层中源MAC地
  • python装饰器

    装饰器是python一个重要的部分 由它的名称我们就可以大致了解到它的功能 拓展其他函数 装饰器可以让我们的代码更加简洁 也更加pythonic 首先 我们先回顾一下基础概念 一 在python中 如果调用一个函数不带括号时 调用的是这个函
  • R语言多任务处理与并行运算包——foreach

    作者简介Introduction 杜雨 EasyCharts团队成员 R语言中文社区专栏作者 兴趣方向为 Excel商务图表 R语言数据可视化 地理信息数据可视化 个人公众号 数据小魔方 微信ID datamofang 数据小魔方 创始人
  • SpringBoot原理

    1 SpringBoot实现原理 SpringBoot是由自动配置和启动器以及大量注解实现 Stater stater就是启动器 也就是我们在pom xml文件中引入的带stater的依赖 springboot框架会根据依赖加载与该启动器有
  • Shell脚本入门

    Shell脚本入门 1 基本概念 Shell是一门弱类型 解释型 非编译型语言 Shell中无数据类型 Shell的作用是解释执行用户的命令 Shell执行命令的方式有两种 1 交互式 用户输入一条命令 shell就解释执行一条 2 批处理
  • 名为dash的蓝色插嘴小机器人_全球最出色的十大教育机器人

    2016年 阿尔法狗战胜围棋世界冠军李世石 成为人工智能发展的标志性事件 万物互联的时代 人工智能正掀起一场影响深刻的技术革命 谷歌 苹果 BAT 华为巨头们纷纷布局人工智能 有人猜测 互联网 过后 我们可能会迎来机器人 听到这个消息 爸爸
  • [PCIe] SR-IOV (单根虚拟化) 及linux驱动浅析(device的PF和VF及其驱动)

    网上从服务器和虚拟化层面介绍SR IOV应用的文章很多了 本文重点从支持SR IOV的设备 EP 及其驱动来讨论 对于SR IOV的设备 EP 来说 无非就是一个device通过物理功能 PF 虚拟出关联的若干个虚拟功能 VF host的驱
  • 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类, 属性: 员工的姓名,员工的生日月份。 方法:getSalary(

    代码 某公司的雇员分为以下若干类 Employee 这是所有员工总的父类 属性 员工的姓名 员工的生日月份 方法 getSalary intmonth 根据参数月份来确定工资 如果该月员工过生日 则公司会额外奖励100 元 Salaried
  • 在proteus中继电器的驱动与使用

    在进行proteus仿真驱动继电器时候 因为第一次接触和学习继电器遇到了无论采用电源驱动还是三极管放大驱动都无法驱动的问题 所以就查了继电器的资料和proteus中的默认设置 发现原来是proteus中继电器默认驱动电压为12V 所以我们需
  • CF 709C

    感谢这个题让我进了前1000 思路 特殊条件切入 一开始想跑网络流 但边数 点数太多 所以就需要找此题和常规网络流的区别 看到 M 2 gt 尽可能使用M 2这个条件构造解 gt 少于M 2的全选 gt 剩下的全是大于M 2的 gt 如果每
  • linux-docker

    unix liunx windows linux 文件系统 所有的资源都是目录在 root 根目录下 一 指令 ip addr ifconfig cd ls vim sudo 管理员身份 代表换行输入 pwd 查看所在目录 sudo sys