(第三十八天)

news2024/11/15 14:02:49
1 harbor 软件包下载
https://github.com/search?q=harbor&type=repositories
2 、出现拒绝连接错误,可能是由于容器没开
# 问题解决:
[root@docker ~] # curl localhost:5000/v2/_catalog
curl : (7) Failed connect to localhost:5000; 拒绝连接
[root@docker ~] # netstat -tunlp | grep 5000
[root@docker ~] # docker ps -a
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
9d196b7190b3 registry:latest "/entrypoint.sh /etc…" About an hour ago
Exited (2) 55 minutes ago r2
[root@docker ~] # docker start r2
r2
[root@docker ~] # netstat -tunlp | grep 5000
tcp 0 0 0 .0.0.0:5000 0 .0.0.0:* LISTEN
1822 /docker-proxy
tcp6 0 0 :::5000 :::* LISTEN
1826 /docker-proxy
3 、上传镜像到私有仓库中
# 打标签
[root@docker ~] # docker tag centos:latest 10.0.0.100:5000/registry:v1
# 推送
[root@docker ~] # docker push 10.0.0.100:5000/registry:v1
The push refers to repository [10.0.0.100:5000/registry]
74ddd0ec08fa: Mounted from centos
v1: digest:
sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc size:
529
[root@docker ~] # curl localhost:5000/v2/_catalog
{ "repositories" :[ "centos" , "registry" ]}
4 、从私有仓库中下载镜像到本地
# 安装 docker
[root@docker2 ~] # cat << EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
[root@docker2 ~] # cat << EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
[root@docker2 ~] # sysctl --system
[root@docker2 ~] # yum install -y yum-utils device-mapper-persistent-data lvm2
[root@docker2 ~] # yum-config-manager --add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@docker2 ~] # yum install docker-ce docker-ce-cli containerd.io docker
buildx-plugin docker-compose-plugin -y
# 配置 /etc/docker/daemon.json ,指定私有仓库的位置
[root@docker2 ~] # vim /etc/docker/daemon
{
"insecure-registries" :[
"http://10.0.0.100:5000"
]
}
# 重启 docker
[root@docker2 ~] # systemctl restart docker
# 拉取私有仓库中的镜像
[root@docker2 ~] # docker pull 10.0.0.100:5000/registry:v1
v1: Pulling from registry
a1d0c7532777: Pull complete
Digest:
sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
Status: Downloaded newer image for 10 .0.0.100:5000/registry:v1
10 .0.0.100:5000/registry:v1
# 查看镜像列表
[root@docker2 ~] # docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10 .0.0.100:5000/registry v1 5d0da3dc9764 2 years ago 231MB
5 、安装 pip
为什么安装 pip ,因为后续要安装 docker compose ,它是 docker 的编排工具
ansible 对多个主机编排
compose
# 安装 python-pip
[root@docker ~] # yum -y install python3-pip
# 查看所有的所有安装的包以及版本
[root@docker ~] # pip list
pip (8.1.2)
[root@2 ~] # python3 -m pip install --upgrade pip # pip 工具升级到最新版本
[root@2 ~] # pip3 config set global.index-url
https://pypi.tuna.tsinghua.edu.cn/simple # 设置 pip3 的全局配置
6 、配置跨主机的容器网络连接
1 )使用本机的 ip 地址和端口发布任务和通信
A= mysql B= java 容器
[root@docker ~] # systemctl start docker
# mtu 1500 表示一次接收不能超过 1500
[root@docker ~] # ip a s
3 : docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
group default
link/ether 02 :42:a7:5c:14:b0 brd ff:ff:ff:ff:ff:ff
inet 172 .17.0.1/16 brd 172 .17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:a7ff:fe5c:14b0/64 scope link
valid_lft forever preferred_lft forever
# 运行一个 nginx 容器
[root@docker ~] # docker run -d -p80:80 centos:nginx
# 查看容器状态
[root@docker ~] # docker ps
# 查看容器 IP 地址
[root@docker ~] # docker inspect 57
"IPAddress" : "172.17.0.2" ,
# 停止容器服务
[root@docker ~] # systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
docker.socket
# 安装前是没有 docker0 的网卡的
# bridge-utils 是用于创建和管理 Linux 网络桥接设备的工具
[root@docker ~] # yum -y install bridge-utils
# 用于显示系统中已创建的网络桥接设备的信息
[root@docker ~] # brctl show
bridge name bridge id STP enabled interfaces
docker0 8000 .0242a75c14b0 no
# 开启 docker 服务
[root@docker ~] # systemctl start docker
# 查看容器状态
[root@docker ~] # docker ps -a
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
9d196b7190b3 registry:latest "/entrypoint.sh /etc…" 2 hours ago
Exited (2) 3 minutes ago r2
# 开启 r2 容器
[root@docker ~] # docker start r2
r2
# 查看网络桥接设备信息,此时有桥接接口
[root@docker ~] # brctl show
bridge name bridge id STP enabled interfaces
docker0 8000 .0242a75c14b0 no vethd5daedb
# 查看 network 的帮助信息
[root@docker ~] # docker network --help
Usage: docker network COMMAND
Manage networks
Commands:
connect Connect a container to a network
create Create a network
disconnect Disconnect a container from a network
inspect Display detailed information on one or more networks
ls List networks
prune Remove all unused networks
rm Remove one or more networks
Run 'docker network COMMAND --help' for more information on a command.
# 列出当前 Docker 守护进程中存在的所有网络
# bridge :这是默认的网络驱动程序,它创建一个虚拟网络桥接,容器连接到这个桥接,并且可以通
IP 地址相互通信。
# host :使用宿主机的网络堆栈,容器直接使用宿主机的网络接口,没有网络隔离。
# none :容器没有网络连接,只有一个环回接口。
[root@docker ~] # docker network ls
NETWORK ID NAME DRIVER SCOPE
5af3831f7474 bridge bridge local
7e7f01e3bc3a host host local
2d54c66fa7ca none null local
# 创建两个容器,并查看它们的 IP 地址,发现它们是连续的
[root@docker ~] # docker run -it centos:latest /bin/bash
[root@5246f78f2d7d /] # [root@docker ~]#
[root@docker ~] # docker inspect 52
"IPAddress" : "172.17.0.3" ,
[root@docker ~] # docker run -it centos:latest /bin/bash
[root@d0094ac22554 /] # [root@docker ~]#
[root@docker ~] # docker inspect d0
"IPAddress" : "172.17.0.4" ,
# 创建一个 network 模式是 host 的容器
[root@docker ~] # docker run -it --network host centos:latest /bin/bash
[root@docker /] # [root@docker ~]#
# 查看容器的 id
[root@docker ~] # docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
64d033715cae centos:latest "/bin/bash" About a minute
ago Up About a minute
# 查看容器的 IP 地址,发现并没有 ip 地址
[root@docker ~] # docker inspect 64
"IPAddress" : "" ,
# 又创建一个 network host 的容器
[root@docker ~] # docker run -it --network host centos:yum /bin/bash
# 容器直接覆盖源主机上
[root@docker /] # ls
bin etc lib lost + found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
# 下载安装 iproute
[root@docker /] # yum -y install iproute
# 查看 ip 地址,发现 IP 地址为本机的地址,与源主机完全重合
[root@docker /] # ip a s
# 安装 httpd
[root@docker /] # yum -y install httpd
# 首页输入数据
[root@docker /] # echo "hh" > /var/www/html/index.html
# 开启 httpd 服务,容器中不能使用 systemctl
[root@docker /] # systemctl start httpd
报错
# 强制开启 httpd 服务
[root@docker /] # httpd -k start
成功
# 容器中访问
[root@docker /] #curl localhost
hh
# ctrl p q 退出容器
# 关闭防火墙
[root@docker ~] # systemctl stop filewalld
到浏览器访问自己 ip 地址
curl 自己 ip 地址(可以访问到页面)
2 )使用 etcd 数据库与 flannel 实现容器间的相互通信
1 node11 配置
(搭建 etcd 数据库规定 ip 地址的范围,搭建 flannel 连通 etcd 数据库实现容器 ip 地址的规定范围分
配)
# etcd 是一个数据库, flannel 负责 ip 的分配
[root@node11 ~] # yum -y install flannel etcd
# 修改 etcd 的配置文件,配置 etcd 的监听和通告客户端 URL
[root@node11 ~] # vim /etc/etcd/etcd.conf
# 指定了 etcd 服务在哪些地址和端口上监听来自客户端的连接请求
ETCD_LISTEN_CLIENT_URLS = "http://0.0.0.0:2379,http://0.0.0.0:4001"
# 指定 etcd 向其他节点和客户端通告的地址和端口
ETCD_ADVERTISE_CLIENT_URLS = "http://10.0.0.11:2379,http://10.0.0.11:4001"
# 启动 etcd 服务
[root@node11 ~] # systemctl start etcd
# 查看端口是否启用
[root@node11 ~] # netstat -lntup | grep 4001
tcp6 0 0 :::4001 :::* LISTEN
1549 /etcd
[root@node11 ~] # netstat -lntup | grep 2379
tcp6 0 0 :::2379 :::* LISTEN
1549 /etcd
# 设置 etcd 服务开机自启
[root@node11 ~] # systemctl enable etcd
Created symlink from /etc/systemd/system/multi
user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.
# 数据库测试,使用 etcdctl 工具进行键值对的设置和获取操作
# 将键为 testdir/testkey0 的值设置为 1000
[root@node11 ~] # etcdctl set testdir/testkey0 1000
1000
# 获取键为 testdir/testkey0 的值
[root@node11 ~] # etcdctl get testdir/testkey0
1000
# 检查 etcd 集群的健康状态,通过指定 -C http://10.0.0.11:4001 参数,连接到 IP 地址为
10.0.0.11 的节点的 4001 端口进行检查
[root@node11 ~] # etcdctl -C http://10.0.0.11:4001 cluster-health
member 8e9e05c52164694d is healthy: got healthy result from
http://10.0.0.11:2379
cluster is healthy
# 配置 flanneld 要访问的 etcd 数据库所在的位置
[root@node11 ~] # vim /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS = "http://10.0.0.11:2379"
# etcd 中创建一个特定路径的键值对,用于存储网络配置信息
[root@node11 ~] # etcdctl mk /atomic.io/network/config '{ "Network" :
"172.20.0.0/16" }'
{ "Network" : "172.20.0.0/16" }
[root@node11 ~] # etcdctl get /atomic.io/network/config
{ "Network" : "172.20.0.0/16" }
# 启动 flanneld
[root@node11 ~] # systemctl start flanneld
# 设置 flanneld 开机自启
[root@node11 ~] # systemctl enable flanneld
Created symlink from /etc/systemd/system/multi
user.target.wants/flanneld.service to
/usr/lib/systemd/system/flanneld.service.
Created symlink from
/etc/systemd/system/docker.service.wants/flanneld.service to
/usr/lib/systemd/system/flanneld.service.
# 查看 flanneld 为本机分配的 ip 网段
[root@node11 ~] # ip a s
3 : flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc
pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 172 .20.13.0/16 scope global flannel0
# 安装 docker
[root@node11 ~] # sh docker.sh
# 开启容器
[root@node11 ~] # systemctl start docker
# 查看容器的所属网段
[root@node11 ~] # ip a s
4 : docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
state DOWN group default
link/ether 02 :42:88:a7:c7:69 brd ff:ff:ff:ff:ff:ff
inet 172 .17.0.1/16 brd 172 .17.255.255 scope global docker0
valid_lft forever preferred_lft forever
[root@node11 ~] # cat /run/flannel/subnet.env
# 定义了 Flannel 网络的整体 IP 地址范围。在一个使用 Flannel 的容器网络环境中,所有容器的 IP
址都将从这个范围内分配
FLANNEL_NETWORK = 172 .20.0.0/16
# 指定了当前节点在 Flannel 网络中的子网。这个子网将用于为当前节点上的容器分配 IP 地址
FLANNEL_SUBNET = 172 .20.13.1/24
# 设置了网络的最大传输单元( Maximum Transmission Unit )大小。 MTU 决定了一次可以在网络
上传输的最大数据包大小。调整 MTU 可以优化网络性能,特别是在使用特定网络设备或协议时
FLANNEL_MTU = 1472
# 当设置为 false 时,指示 Flannel 不进行 IP 伪装( IP Masquerading )。 IP 伪装通常用于在容器
或虚拟机环境中,将内部网络的 IP 地址转换为外部可路由的 IP 地址。在某些情况下,可能不需要进行
IP 伪装,或者有其他网络配置方式来处理网络通信
FLANNEL_IPMASQ = false
# flanneld 分配的网段写入到 daemon.json 文件中
[root@node11 ~] # vim /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://do.nark.eu.org" ,
"https://dc.j8.work" ,
"https://docker.m.daocloud.io" ,
"https://dockerproxy.com" ,
"https://docker.mirrors.ustc.edu.cn" ,
"https://docker.nju.edu.cn"
],
"host" : [
"tcp://0.0.0.0:2375" ,
"unix:///var/run/docker.sock"
],
"insecure-registries" : [
"http://10.0.0.100:5000"
],
"bip" : "172.20.13.1/24" ,
"mtu" : 1472
}
# 重启 docker ,如果重启不了,就修改一下远程管理
[root@node11 ~] # systemctl restart docker
Job for docker.service failed because the control process exited with error
code. See "systemctl status docker.service" and "journalctl -xe" for
details.
[root@node11 ~] # vim /usr/lib/systemd/system/docker.service
ExecStart = /usr/bin/dockerd
# 重启失败,配置文件没有更新
[root@node11 ~] # systemctl restart docker
[root@node11 ~] # systemctl daemon-reload
# 重启成功
[root@node11 ~] # systemctl restart docker
# flannel0 IP 地址与 docker0 IP 地址属于一个网段
[root@node11 ~] # ip a s
3 : flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc
pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 172 .20.13.0/16 scope global flannel0
valid_lft forever preferred_lft forever
inet6 fe80::a46d:9cf3:16c5:23d7/64 scope link flags 800
valid_lft forever preferred_lft forever
4 : docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1472 qdisc noqueue
state DOWN group default
link/ether 02 :42:88:a7:c7:69 brd ff:ff:ff:ff:ff:ff
inet 172 .20.13.1/24 brd 172 .20.13.255 scope global docker0
valid_lft forever preferred_lft forever
# 拉取一个 centos 镜像
[root@node11 ~] # docker pull centos
# 关闭防火墙
[root@node11 ~] # systemctl stop firewalld
[root@node11 ~] # systemctl disable firewalld
Removed symlink /etc/systemd/system/multi
user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus
org.fedoraproject.FirewallD1.service.
# 关闭 selinux
[root@node11 ~] # setenforce 0
# 创建一个容器
[root@node11 ~] # docker run -it centos:latest /bin/bash
[root@d89a648c9278 /] # [root@node11 ~]#
# 查看容器的 ip 地址,是属于被 flanneld 分配网段的 ip 地址
[root@node11 ~] # docker inspect d89
"IPAddress" : "172.20.13.2" ,
2 node22 配置
(搭建 flannel 连通 etcd 数据库实现容器 ip 地址的规定范围分配,最后两个主机的容器进行相互通
信)
# 修改 flanneld 配置文件,指定 etcd 数据库所在位置和所开放端口号
[root@node22 ~] # vim /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS = "http://10.0.0.11:2379"
# 开启 flanneld 服务
[root@node22 ~] # systemctl start flanneld
# 查看 flanneld 为本机所分配的网段信息
[root@node22 ~] # ip a s
5 : flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc
pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 172 .20.82.0/16 scope global flannel0
# 安装配置 docker
[root@node22 ~] # sh docker.sh
# 开启 docker 服务(守护进程)
[root@node22 ~] # systemctl start docker
# 查看 docker ip 网段
[root@node22 ~] # ip a s
3 : docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state
DOWN group default
link/ether 02 :42:ce:a7:7c:ea brd ff:ff:ff:ff:ff:ff
inet 172 .17.0.1/16 brd 172 .17.255.255 scope global docker0
[root@node22 ~] # scp 10.0.0.11:/etc/docker/daemon.json /etc/docker/
# 查看 flanneld 的环境变量信息
[root@node22 ~] # cat /run/flannel/subnet.env
FLANNEL_NETWORK = 172 .20.0.0/16
FLANNEL_SUBNET = 172 .20.82.1/24
FLANNEL_MTU = 1472
FLANNEL_IPMASQ = false
# 配置 deamon 文件
[root@node22 ~] # vim /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://do.nark.eu.org" ,
"https://dc.j8.work" ,
"https://docker.m.daocloud.io" ,
"https://dockerproxy.com" ,
"https://docker.mirrors.ustc.edu.cn" ,
"https://docker.nju.edu.cn"
],
"host" : [
"tcp://0.0.0.0:2375" ,
"unix:///var/run/docker.sock"
],
"insecure-registries" : [
"http://10.0.0.100:5000"
],
# "bip" 代表 Backend IP Flannel 为所在节点分配的子网的起始 IP 地址
"bip" : "172.20.82.1/24" ,
"mtu" : 1472
}
# 修改 docker.sock
[root@node22 ~] # vim /usr/lib/systemd/system/docker.service
ExecStart = /usr/bin/dockerd
# 重载 deamon 文件
[root@node22 ~] # systemctl daemon-reload
# 重启 docker 服务
[root@node22 ~] # systemctl restart docker
# 查看 docker IP 地址与 flannel IP 地址,它们属于同一网段
[root@node22 ~] # ip a s
3 : docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1472 qdisc noqueue state
DOWN group default
link/ether 02 :42:ce:a7:7c:ea brd ff:ff:ff:ff:ff:ff
inet 172 .20.82.1/24 brd 172 .20.82.255 scope global docker0
5 : flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc
pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 172 .20.82.0/16 scope global flannel0
# 拉取镜像
[root@node22 ~] # docker pull centos
# 创建容器
[root@node22 ~] # docker run -it centos:latest
# ping node11 中的容器的 ip 地址
[root@2b47b26a7286 /] # ping 172.20.13.2
PING 172 .20.13.2 (172.20.13.2) 56 (84) bytes of data.
64 bytes from 172 .20.13.2: icmp_seq = 1 ttl = 60 time = 8 .16 ms
64 bytes from 172 .20.13.2: icmp_seq = 2 ttl = 60 time = 0 .717 ms
^C
--- 172 .20.13.2 ping statistics ---
2 packets transmitted, 2 received, 0 % packet loss, time 1002ms
rtt min/avg/max/mdev = 0 .717/4.440/8.163/3.723 ms
3 )总结,工作原理
1 、使用 flanneld docker 主机(宿主)分配网段
2 、网段的信息以及 ip 的信息保存在 etcd 数据库中
3 、当 flanneld 开始运行的时候,会从 etcd 数据库中读取 { “Network” : “172.20.0.0/16” } ,随机为当
前的主机添加一个 flannel0 网卡
4 、配置 docker daemon 文件,让 docker0 网卡变成和 flanneld 的网段一致,之后 docker 下创建的
容器的 ip 就在 flanneld 的网段控制之内

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础国产GD32单片机编程入门(一)GPIO输出Keil5工程创建含源码

文章目录 一.概要二.GD32单片机GPIO内部结构图三.GD32单片机GPIO输入输出信号流向四.GD32单片机GPIO引脚的复用以及重映射五.从零开始创建一个GD32F103C8T6单片机GPIO输出驱动LED灯例程六.工程源代码下载七.小结 一.概要 GPIO(general porpose intput output):单片机通用输入输…

如何禁止电脑访问网站

一、修改Hosts文件 找到Hosts文件&#xff1a;在Windows系统中&#xff0c;Hosts文件通常位于C:\Windows\System32\drivers\etc\目录下。 编辑Hosts文件&#xff1a;以管理员身份打开记事本或任意文本编辑器&#xff0c;然后找到并打开Hosts文件。 添加禁止访问的域名&#…

【小趴菜前端实习日记4】

el-table数据更新视图不更新的问题、el-dialog居中展示、el-form表单验证之对象属性验证、vue2过滤器 一、el-table数据更新视图不更新的问题二、el-dialog居中展示三、el-form表单验证之对象属性验证四、vue2过滤器 一、el-table数据更新视图不更新的问题 手动触发元素更新&a…

【C#】字段

C# 类具有哪些成员&#xff1f; 字段 1.什么是字段 字段(field)是一种表示与对象或类型(类与结构体)关联的变量字段是类型的成员,旧称“成员变量”与对象关联的字段亦称“实例字段”与类型关联的字段称为“静态字段”,由static修饰 通过一个代码来详细了解实例字段与静态字段…

简过网:大专学历可以考教师编吗?

大专学历可以考教师编吗&#xff1f; 在这里可以明确的告诉大家&#xff0c;大专考生可以报考小学老师&#xff0c;只要你有教师资格证&#xff0c;年龄在18~35周岁之间&#xff0c;大专的学历就可以报考小学教师编啦。 如果没有教师资格证&#xff0c;在备考教师编前&#x…

python从入门到精通:数据可视化-图形开发

1、json数据格式 • Json是一种轻量级的数据交互格式&#xff0c;可以按照Json指定的格式去组织和封装数据 • Json本质上是一种带有特殊格式的字符串 主要功能&#xff1a;json就是一种在各个编程语言中流通的数据格式&#xff0c;负责不同编程语言中的数据传递和交互&#xf…

惠海H6900B升压恒流调光IC芯片3.7V7.4V12V升压18V24V36V 48V 植物灯/电解水

H6900B升压型LED恒流驱动芯片是一款功升压恒流芯片&#xff0c;专为满足高亮度LED灯串的恒流驱动需求而设计。它结合合了多种功能电路&#xff0c;包括误差放大器、固定关断时间控制电路以及恒流驱动电路等&#xff0c;很好改良了LED灯的稳定。 一、产品特征 1.内置耐压60V功…

万字干货!手把手教你如何训练超大规模集群下的大语言模型

分布式训练的主要难点 简单介绍一下混合并行中经典的三种并行方案。首先是数据并行&#xff0c;简称 DP。正如其名&#xff0c;数据并行是将数据分割到不同的计算设备上&#xff0c;然后由这些设备完成各自的计算任务。第二种是张量并行&#xff0c;简称 TP。张量并行是将模型中…

Swift concurrency 5 — async let的理解与使用

在前面的文章中&#xff0c;我们介绍过async/await这两个关键字&#xff0c;也了解了异步方法&#xff0c;在一个Task中&#xff0c;多个加了await的异步方法是顺序执行的&#xff0c;一个接着一个&#xff0c;这个在有些情况下是很好的&#xff0c;比如用户登录&#xff0c;获…

element-ui 表单Cannot read property ‘indexOf‘ of undefined

在使用resetField 报错Cannot read property ‘indexOf’ of undefined 复现说明 报错展示 解决方案 用clearValidate()替换resetFields(&#xff09;

Mysql基础练习题 183.找出所有从不点任何东西的顾客 (力扣)

183.找出所有从不点任何东西的顾客 建表插入数据&#xff1a; #插入数据&#xff0c;顾客表和订单表 Create table If Not Exists Customers (id int, name varchar(255)) Create table If Not Exists Orders (id int, customerId int) Truncate table Customers insert into…

Java面试宝典-java基础09

Java面试宝典-java基础09 81、String,Stringbuffer,StringBuilder 的区别82、Comparator 与 Comparable 有什么区别83、说说反射用途及实现原理,Java 获取反射三种方法84、&和&&的区别85、Java 创建对象有几种方式86、如何将 GB2312 编码字符串转换为 ISO-8859-…

一起学Java(11)-[日志篇]教你分析SLF4J源码,掌握Logger接口实现类加载原理

最近各种事情很忙&#xff0c;今天继续。在第十篇(一起学Java(10)-为项目引入Log框架(Log篇二-引入SLF4J接口层框架))中&#xff0c;我们为项目(https://github.com/lihongzheshuai/java-all-in-one)引入了SLF4J和Logback框架&#xff0c;按计划通过阅读源码研究下SLF4J的实现原…

如何在忘记密码或 ID 的情况下解锁 iPhone 15

您是否曾经因为忘记了 iPhone 密码而陷入困境&#xff0c;或者您是否多次错误地输入了屏幕时间密码并发现自己被锁定在 iPhone 之外&#xff1f; 被锁定和拒绝访问您的 iPhone 可能很常见&#xff0c;尤其是在您尚未配置 Face ID 的情况下。或者&#xff0c;如果 Face ID 无法正…

【机器学习】广义线性模型和一般线性模型的联系和区别以及如何选择合适的链接函数

引言 广义线性模型&#xff08;Generalized Linear Models&#xff0c;简称GLM&#xff09;和一般线性模型&#xff08;通常指的是线性回归模型&#xff09;都是统计建模中常用的工具&#xff0c;但它们在假设、适用范围和模型结构上有所不同 文章目录 引言一、广义线性模型和一…

黑马程序员Python机器学习|1机器学习概述

一 人工智能概述 1.机器学习和人工智能&#xff0c;深度学习的关系 2.机器学习可以做什么 翻译&#xff0c;智能客服。 二 什么是机器学习 1.机器学习的定义 从数据中学习&#xff0c;学习后得出的结论是模型&#xff08;规律&#xff09;&#xff0c;通过这个规律去解决问题&a…

网络安全教程初级简介

随着技术的发展和信息池的增加&#xff0c;信息系统迫切需要建立网络安全措施&#xff0c;以保护输入这些系统的信息。网络安全是任何组织&#xff08;从小型初创公司到大型跨国组织&#xff09;的必备条件。 网络安全包括一系列技术、流程和实践&#xff0c;用于保护网络、设…

测试面试题,自动化测试与性能测试篇(附答案)

本系列文章总结归纳了一些软件测试工程师常见的面试题&#xff0c;主要来源于个人面试遇到的、网络搜集&#xff08;完善&#xff09;、工作日常讨论等&#xff0c;分为以下十个部分&#xff0c;供大家参考。如有错误的地方&#xff0c;欢迎指正。有更多的面试题或面试中遇到的…

直播电商如何实现精细化运营,破除流量互卷的困境?

在当今电商行业的激烈竞争中&#xff0c;流量的获取与维持已成为品牌和商家关注的焦点。然而&#xff0c;随着市场逐渐饱和&#xff0c;流量成本不断攀升&#xff0c;传统的流量获取方式已不再可持续&#xff0c;精细化运营才是电商企业脱颖而出的关键。 本文将深入探讨电商行…

聚类算法k-means(手撕和调用skl)

定义 K均值聚类&#xff08;k-means clustering&#xff09;算法是一种常用的、基于原型的聚类算法&#xff0c;简单、直观、高效。其步骤为&#xff1a; 第一步&#xff1a;根据事先已知的聚类数&#xff0c;随机选择若干样本作为聚类中心&#xff0c;计算每个样本与每个聚类…