Docker容器基础知识点总结

一 、Docker架构

dockers加速镜像:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://z90yxq2m.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Ubuntu下:
sudo service docker start

查看dockers容器有哪些镜像:

docker images
docker images -q  查看所有镜像的id

删除所有镜像  docker rmi `docker images -q`
删除镜像  docker rmi --force 镜像ID

搜索有哪些镜像

docker search imagename

下载镜像到dockers容器

docker pull imagename

从容器中删除某个镜像

docker rmi redis:5.0

查看官网: https://hub.docker.com

1. 容器相关命令
  • 查看容器

  • 创建容器

  • 进入容器

  • 启动容器

  • 停止容器

  • 删除容器

  • 查看容器信息

1.1 创建容器 docker run
docker images
-i 容器一直运行 -t 创建终端  -d 后台运行创建容器
1. 创建容器
方法一
docker run -it --name=lk centos:7 /bin/bash
注意 使用 -it参数创建的容器 创建完成立即进入容器,exit就会立马关闭容器
方法二
docker run -id --name=lk1 centos:7
2. 查看容器
docker ps -a
注意 使用 -id参数创建的容器 创建完成不会立即进入容器,exit也不会关闭容器还是后台运行

-it创建的容器一般称为交互式容器, -id创建的容器一般称其为守护式容器
3. 进入容器
docker exec -it lk /bin/bash
4. 停止容器
docker stop lk
5. 启动容器
docker start lk

6. 删除容器
docker rm lk
7. 删除所有容器
docker rm `docker ps -aq`  但是开启状态的容器是不能被删除的
8. 查看容器的信息
docker inspect lk
2. docker容器的数据卷
2.1 数据卷的概念与作用

思考:

  • docker容器删除后,容器中产生的数据还在吗?
  • docker容器和外部机器可以直接交换文件吗?
  • docker容器之间想要进行数据交互

通过上面三个问题引入了:

容器的数据卷
在这里插入图片描述

  • 数据卷是宿主机中的一个文件和目录

  • 当容器目录和数据卷目录绑定后,双方的修改会立即同步

  • 一个数据卷可以被多个容器同时挂载

  • 一个容器也可以被挂载多个数据卷

数据卷的作用:

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换
2.2配置数据卷
  • 创建启动容器时,使用 -v 参数 设置数据卷

    docker run ... -v 宿主机目录(文件):容器内目录
    
    注意事项:
    1. 目录必须是绝对路径
    2. 如果目录不存在, 会自动创建
    3. 可挂载多个数据卷
    
2.3 配置数据卷容器

多容器进行数据交换
在这里插入图片描述

  1. 多个容器挂载同一个数据卷
  2. 数据卷容器

至少需要三个容器

配置数据卷容器的方法

1. 创建启动c3数据卷容器,使用-v参数设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
2. 创建启动c1 ,c2容器,使用--volumes-from参数 设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash
3. docker应用部署
3.1 MySQL部署
  • 容器内的网络服务和外部机器不能直接通信.外部机器和宿主机可以直接通信
  • 宿主机和容器可以直接通信
  • 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的该端口,从而间接访问容器的服务。
  • 这种操作称为:端口映射
    在这里插入图片描述

安装部署

1. 搜索MySQL镜像
docker search mysql
2. 拉去mysql镜像
docker pull mysql:5.6
3. 在宿主机下创建容器,设置端口映射、目录映射
mkdir ~/mysql
cd mysql

docker run -id -p 3307:3306 --name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
3.2 Tomcat 安装部署
1. 搜索tomcat镜像
docker search tomcat
2. 拉去tomcat镜像
docker pull tomcat
3. 在宿主机下创建容器,设置端口映射、目录映射
mkdir ~/tomcat
cd tomcat

docker run -id -p 8090:8080 --name=c_tomcat \
-v $PWD:/usr/local/tomcat/webapp \
tomcat

4. 外部机器访问tomcat
192.168.31.20:8090
3.3 Nginx部署
1. 搜索Nginx镜像
docker search Nginx
2. 拉去Nginx镜像
docker pull Nginx
3. 在宿主机下创建容器,设置端口映射、目录映射
mkdir ~/Nginx
cd Nginx
mkdir conf
cd conf
在~/nginx/conf目录下创建nginx.conf文件,
vim nginx.conf

docker run -id -p 80:80 --name=c_nginx \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx

4. 外部机器访问tomcat
192.168.31.20:80

nginx.conf的内容是

user administrator root;  #配置用户或者组,默认为nobody nobody。
worker_processes 2;  #允许生成的进程数,默认为1

pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
error_log /var/log/nginx/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg

events {
    #accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    #multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数,默认为512
}

http {

    include       /etc/nginx/mime.types;   #文件扩展名与文件类型映射表
    default_type  application/octet-stream; #默认文件类型,默认为text/plain
	
    #access_log off; #取消服务日志  
	
	#自定义格式	
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
	
    access_log /var/log/nginx/access.log main;  #combined为日志格式的默认值
	
    sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
	
	#tcp_nopush     on;
	
    #sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
	
    keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。

    #upstream mysvr {   
    #  server 127.0.0.1:7878;
    #  server 192.168.10.121:3333 backup;  #热备
    #}
    
    
	server {
        #keepalive_requests 120; #单连接请求上限次数。
		
        listen       80;   #监听端口
		
        server_name  127.0.0.1;   #监听地址       
		
        location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
			
			#root path;  #根目录
			#index vv.txt;  #设置默认页
			#proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
			#deny 127.0.0.1;  #拒绝的ip
			#allow 172.18.5.54; #允许的ip  
			root   /usr/share/nginx/html;
            index  index.html index.htm;
        } 
		
		error_page 404 /404.html; #错误页
	
		# 将服务器错误页重定向到静态页 /50x.html
		#
		error_page   500 502 503 504  /50x.html;
		location = /50x.html {
			root   /usr/share/nginx/html;
		}
    }
	
	include /etc/nginx/conf.d/*.conf;
}

3.4 Redis部署
1. 搜索Redis镜像
docker search Redis
2. 拉去tomcat镜像
docker pull Redis:5.0
3. 在宿主机下创建容器,设置端口映射、目录映射
mkdir ~/Redis
cd tomcat

docker run -id -p 6379:6379  --name=c_Redis \
Redis:5.0

4. 外部机器访问Redis
192.168.31.20:6379
3.5 gitlab部署

在/usr/local/docker/gitlab目录下创建一个docker-compose.yml文件

version: '3'
services:
    gitlab:
        image: 'twang2218/gitlab-ce-zh:9.4'
        restart: always
        hostname: '172.24.71.184'
        environment:
          TZ: 'Asia/Shanghai'
          GITLAB_OMNIBUS_CONFIG: |
              external_url 'http://172.24.71.184:8080'
              gitlab_rails['time_zone'] = 'Asia/Shanghai'
              gitlab_rails['gitlab_shell_ssh_port'] = 2222
              unicorn['port'] = 8888
              nginx['listen_port'] = 8080
        ports:
          - '8080:8080'
          - '8443:443'
          - '2222:22'
        volumes:
          - /usr/local/docker/gitlab/config:/etc/gitlab
          - /usr/local/docker/gitlab/data:/var/opt/gitlab
          - /usr/local/docker/gitlab/logs:/var/log/gitlab

      
      
version: '3'
networks:
    my_net:
        driver: bridge 
        ipam:
            config:
                - subnet: 172.30.0.1/24
services:
  gitlab:
    image:  'gitlab/gitlab-ce:14.9.5-ce.0'
    container_name: gitlab
    hostname: 'gitlab.example.com'
    restart: always
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://172.24.71.184:8080'
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
          gitlab_rails['gitlab_shell_ssh_port'] = 2222
          unicorn['port'] = 8888
          nginx['listen_port'] = 8080
          # 需要配置到 gitlab.rb 中的配置可以在这里配置,每个配置一行,注意缩进。
          # 电子邮件配置:
          gitlab_rails['smtp_enable'] = true
          gitlab_rails['smtp_address'] = "smtp.qq.com"
          gitlab_rails['smtp_port'] = 465
          gitlab_rails['smtp_user_name'] = "xxxxxxx@qq.com"
          gitlab_rails['smtp_password'] = "授权码,不是密码"
          gitlab_rails['smtp_authentication'] = "login"
          gitlab_rails['smtp_enable_starttls_auto'] = true
          gitlab_rails['smtp_tls'] = true
          # 这里的邮箱账号和上面保持一致
          gitlab_rails['gitlab_email_from'] = '528746460@qq.com'
          user['git_user_email']="528746460@qq.com"
          
          # 配置外部redis
          redis['enable']=false
          gitlab_rails['redis_host']="127.0.0.1"
          gitlab_rails['redis_port']=6379
          gitlab_rails['redis_password']='password'
          gitlab_rails['redis_database']=10
          #配置外部postgresql
          postgresql['enable'] = false
          gitlab_rails['db_adapter'] = 'postgresql'
          gitlab_rails['db_encoding'] = 'utf8'
          gitlab_rails['db_host'] = '127.0.0.1'
          gitlab_rails['db_port'] = '5432'
          gitlab_rails['db_username'] = 'postgres'
          gitlab_rails['db_password'] = 'postgres'
          gitlab_rails['db_database'] = "postgres"
    ports:
      - '8080:8080'
      - '8443:443'
      - '2222:22'
    volumes:
      - /usr/local/docker/gitlab/config:/etc/gitlab
      - /usr/local/docker/gitlab/data:/var/opt/gitlab
      - /usr/local/docker/gitlab/logs:/var/log/gitlab
      #- /home/ecs-user/docker/gitlab/public:/opt/gitlab/embedded/service/gitlab-rails/public
    shm_size: '256m'
    logging: 
      driver: "json-file"
      options: 
        max-size: "2g"
        max-file: "2"
    networks:
        my_net:
            ipv4_address: 172.30.0.6

保存文件后执行下面命令

1. sudo docker-compose up -d
2. sudo docker ps
3. sudo docker logs -f 容器id
4. Dockerfile 制作镜像

如何将自己的项目给到别人,避免水土不服
操作系统组成部分:

  • 进程调度子系统
  • 进程通信子系统
  • 内存管理子系统
  • 设备管理子系统
  • 文件管理子系统
  • 网络通信子系统
  • 作业控制子系统

Linux 文件系统由 bootfs 和 rootfs 两部分组成

  • bootfs :包含 bootloader (引导加载程序)和 kernel (内核).
  • rootfs : root 文件系统,包含的就是典型 Linux 系统中的/ dev ,
    / proc ,/ bin ,/ etc 等标准目录和文件
  • 不同的 linux 发行版, bootfs 基本一样,而 rootfs 不同,如 ubuntu、centos 等
4.1 Docker 镜像原理
  • docker 镜像是由特殊的文件系统叠加而成的
  • 最低端是bootfs,并使用宿主机的bootfs 复用宿主机的bootfs
  • 第二层root文件系统rootfs,称为base image
  • 然后再往上可以叠加其他的镜像文件
  • 统一文件系统( Union File System )技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。
  • 一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的境像成为基心镜像。
  • 当从一个镜像启动容器时, Docker 会在最顶层加载一个读写文件系统作为容器

在这里插入图片描述

思考:

1.Docker镜像本质是什么? 复用

  • 是一个分层文件系统

2.Docker 中一个 centos 镜像为什么只有200MB,而一个 centos 操作系统的 iso 文件要几个个 G ?

  • Centos 的 iso 镜像文件包含 bootfs 和 rootfs ,而 docker 的 centos 镜像复用操作系统的 bootfs ,只有 rootfs 和其他晚像层

3.Docker中一个 tomcat 境像为什么有500MB,而一个 tomcat 安装包只有70多 MB ?.

  • 由于 docker 中镜像是分层的, tomcat 虽然只有70多 MB ,但他需要依赖于父镜像和基础镜像,所有整个对外暴露的 tomcat 镜像大小500多 MB
4.2 镜像制作
  1. 容器转为镜像

​ docker commit 容器id 镜像名称:版本号

注意对于 有挂载的一些文件 使用docker commit 是不会转为镜像的

  1. 镜像文件转为压缩包传给别人使用
    下面二选一:
    1.docker save 镜像名字:版本号 > 要打包的名字.tar
    docker save 镜像名字:版本号 > 要打包的名字.tgz

    2.docker save -o 要打包名字.tar 镜像名字:版本号

  2. 压缩文件还原成镜像
    下面二选一:
    1.docker load -i 压缩文件名称
    2.docker load < 已打包的镜像名字.tar/tgz

4.3 dockerfile实现镜像步骤

案例一:

  • 定义父镜像: FROM java :8
  • 定义作者信息: MAINTAINER itheima itheima@itcast.cn
  • 将 jar 包添加到容器: ADD springboot.jar app.jar
  • 定义容器启动执行的命令: CMD java -jar app . jar

执行dockerfile文件

在对应目录下将你的项目jar包发给对应的人员

在创建一个dockerfile

通过 dockerfile 构建镜像: docker bulid - f dockerfile 文件路径﹣ t 镜像名称版本

docker bulid -f ./dockerfile_1 -t websapp .

案例二:

案例:实现步骤

  • 定义父镜像: FROM centos :7
  • 定义作者信息: MAINTAINER itheima itheima@itcast.cn
  • 执行安装 vim 命令: RUN yum install - y vim
  • 定义默认的工作目录: WORKDIR / usr
  • 定义容器启动执行的命令: CMD / bin / bash

使用dockerfile文件创建镜像,执行下面命令

docker bulid -f ./dockerfile_1 -t centos_hsh:1.0.2 .

5. docker compose

是一个编排容器分布式部署的工具

  1. 利用dockerfile定义运行环境镜像
  2. 使用docker-compose.xml定义组成应用的各服务
  3. 运行docker-compose up 启动应用
6. 私有仓库

docker pull registry

id - f dockerfile 文件路径﹣ t 镜像名称版本

docker bulid -f ./dockerfile_1 -t websapp .

案例二:

案例:实现步骤

  • 定义父镜像: FROM centos :7
  • 定义作者信息: MAINTAINER itheima itheima@itcast.cn
  • 执行安装 vim 命令: RUN yum install - y vim
  • 定义默认的工作目录: WORKDIR / usr
  • 定义容器启动执行的命令: CMD / bin / bash

使用dockerfile文件创建镜像,执行下面命令

docker bulid -f ./dockerfile_1 -t centos_hsh:1.0.2 .

5. docker compose

是一个编排容器分布式部署的工具

  1. 利用dockerfile定义运行环境镜像
  2. 使用docker-compose.xml定义组成应用的各服务
  3. 运行docker-compose up 启动应用
6. 私有仓库

docker pull registry

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/275857.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SAP VA01 创建带wbs号的销售订单包 CJ067的错误

接口错误提示如下 SAP官方 CJ067 124177 - VA01: CJ067 during WBS acct assgmt with a different business area S4的core 刚好能用上 实施 这个note后成功

如何学习TS?

文章目录 一. 8种内置基础类型.ts二. void、never、any、unknown类型void类型never类型any类型unknown类型总结&#xff1a;void和any在项目中是比较常见的&#xff0c;never和unknown不常用。 三. 数组和函数类型定义.ts 一. 8种内置基础类型.ts /* eslint-disable typescrip…

springboot整合minio做文件存储

一,minio介绍 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象文件可以是任意大小&…

Seata 中封装了四种分布式事务模式,分别是: AT 模式, TCC 模式, Saga 模式, XA 模式,

文章目录 seata概述Seata 中封装了四种分布式事务模式&#xff0c;分别是&#xff1a;AT 模式&#xff0c;TCC 模式&#xff0c;Saga 模式&#xff0c;XA 模式&#xff0c; 今天我们来聊聊seata seata 概述 在微服务架构下&#xff0c;由于数据库和应用服务的拆分&#xff0c…

上海亚商投顾:沪指冲高回落 游戏股午后集体重挫

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数12月22日冲高回落&#xff0c;黄白二线分化严重。游戏股午后大跌&#xff0c;盛天网络、游族网络、巨…

C++实现增序含头结点的单链例题:现已知单链表L中结点是按整数值递增排列,试写一算法将值为X的结点插入到表L中,使得L任然递增有序

因为比较简单直接给代码&#xff1a; <1>.c文件 #include"Module.h" int main() {int m 0;int flag 0,elect0;printf("*-----------------------------------------------------------------------------------------*\n");struct STU* List Cr…

基于鸿蒙OS开发一个前端应用

创建JS工程&#xff1a;做鸿蒙应用开发到底学习些啥&#xff1f; 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择File > New > Create Project来创建一个新工程。选择HarmonyOS模板库&#xff0c…

ROS MoveIt!

MoveIt!是一个用于ROS的开源运动规划库&#xff0c;提供多种功能&#xff0c;包括用于运动规划的快速逆运动学分析、用于操纵的高级算法、机械手控制、动力学、控制器和运动规划。&#xff08;通过提供一个GUI来协助MoveIt!所需的各种设置&#xff0c;它允许使用RViz进行视觉反…

算法导论复习纲要

函数 1. 上界下界&#xff0c;紧确界的定义 2. 求解递推式&#xff0c;代入法&#xff0c;递归树法&#xff0c;主方法 分治算法 动态规划 1. 切割钢条&#xff1a;递归方法&#xff0c;动态的自上而下&#xff0c; 2. 矩阵乘法&#xff1a;最优子结构性的证明&#xff0c…

腾讯云服务器如何买(购买腾讯云服务器的详细步骤)

腾讯云服务器购买流程直接在官方秒杀活动上购买比较划算&#xff0c;在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵&#xff0c;但是自定义购买云服务器CPU内存带宽配置选择范围广&#xff0c;活动上购买只能选择固定的活动机&#xff0c;选择范围窄&#xff0c;但是…

Hadoop YARN CGroup 实践

文章目录 Hadoop YARN Cgroups 实践什么是 cgroupscgroups 概念YARN 使用 cgroups 背景cgroups 在 YARN 中的工作原理cgroups 在 YARN 中的实践步骤参考 Hadoop YARN Cgroups 实践 什么是 cgroups cgroups 的全名叫做 Control Groups&#xff0c; 它是 Linux 内核的一个功能&…

技术资讯:2023编程语言排行榜,出炉啦!

大家好&#xff0c;我是大澈&#xff01; 本文约2000字&#xff0c;整篇阅读大约需要4分钟。 感谢关注微信公众号&#xff1a;“程序员大澈”&#xff0c;免费领取"面试礼包"一份&#xff0c;然后免费加入问答群&#xff0c;从此让解决问题的你不再孤单&#xff01…

深信服AF防火墙配置SSL VPN

防火墙版本&#xff1a;8.0.85 需提前确认防火墙是是否有SSL VPN的授权&#xff0c;确认授权用户数量 1、确认内外网接口划分 2、网络→SSL VPN&#xff0c;选择内外网接口地址 3、SSL VPN→用户管理→新增一个SSL VPN的用户 4、新增L3VPN资源&#xff0c;类型选择Other&…

12.18构建哈夫曼树(优先队列),图的存储方式,一些细节(auto,pair用法,结构体指针)

为结构体自身时&#xff0c;用.调用成员变量&#xff1b;为结构体指针时&#xff0c;用->调用成员变量 所以存在结构体数组时&#xff0c;调用数组元素里的成员变量&#xff0c;就是要用. 结构体自身只有在new时才会创建出来&#xff0c;而其指针可以随意创建 在用new时&…

听GPT 讲Rust源代码--src/tools(28)

File: rust/src/tools/clippy/clippy_lints/src/operators/identity_op.rs 文件路径 rust/src/tools/clippy/clippy_lints/src/operators/identity_op.rs 中的作用是定义了 IdentityOp 类型的 Clippy lint 规则&#xff0c;用于检查代码中是否存在不必要的恒等操作符&#xff0…

Tiny Object Detection

文章目录 RFLA: Gaussian Receptive Field based Label Assignment for Tiny Object Detection&#xff08;ECCV2022&#xff09;Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection&#xff08;CVPR2023&#xff09;TOD-CMLNN&#xff08;2023&#xff09; …

为什么LED显示屏显示会有色差?

在LED显示屏的销售过程中&#xff0c;由于尾货来自不同批次的产品&#xff0c;其亮度差异不可避免&#xff0c;导致拼装后的显示效果不佳。为解决这一问题&#xff0c;逐点校正技术应运而生。逐点校正技术是一项用于提升LED电子屏亮度均匀性和色彩保真度的技术。通过对LED显示屏…

深度学习核心技术与实践之深度学习基础篇

非书中全部内容&#xff0c;只是写了些自认为有收获的部分 神经网络 生物神经元的特点 &#xff08;1&#xff09;人体各种神经元本身的构成很相似 &#xff08;2&#xff09;早期的大脑损伤&#xff0c;其功能可能是以其他部位的神经元来代替实现的 &#xff08;3&#x…

C# 常用数据类型及取值范围

1.常见数据类型和取值范围 序号数据类型占字节数取值范围1byte10 到 2552sbyte1-128 到 1273short 2-32,768 到 32,7674ushort20 到 65,5355int4-2,147,483,648 到 2,147,483,6476uint40 到 4,294,967,2957float41.5 x 10−45 至 3.4 x 10388double85.0 10−324 到 1.…

[玩转AIGC]LLaMA2训练自己的中文故事撰写神器(content generation)

目录 一、下载并加载中文数据集二、中文数据集处理1、数据格式2、数据集处理之tokenizer训练格式1&#xff09;先将一篇篇文本拼凑到一起&#xff08;只是简单的拼凑一起&#xff0c;用于训练tokenizer&#xff09;2&#xff09;将数据集进行合并 3、数据集处理之模型&#xff…