Docker(四)

news2024/11/27 1:40:01

文章目录

    • 1. docker其他命令补充
    • 2. docker-registry使用
    • 3. docker-hub的使用
    • 4. 企业级私有仓库harbor
      • 4.1 harbor安装
      • 4.2 harbor配置https
      • 4.3 harbor常见使用
        • 4.3.1 harbor新建项目仓库
        • 4.3.2 harbor创建用户
        • 4.3.3 harbor仓库管理
        • 4.3.4 harbor复制管理
        • 4.3.5 harbor删除镜像
    • 5. docker基础网络
      • 5.1 四种基础网络类型
      • 5.2 创建自定义网络
    • 6. 跨宿主机容器网络类型
      • 6.1 跨宿主机容器网络macvlan类型
      • 6.2 跨宿主机容器网络overlay类型

1. docker其他命令补充

# 镜像的构建历史
docker history 镜像id   

# 一个镜像可以起多个标签,多个标签类似于硬链接,必须把所有相同镜像的标签删除,
# 这个镜像才算完全删除,只删除其中一个,相当于只删了标记,因为镜像层是共用的。
docker tag alpine:3.9 alpine:latest

# docker container diff容器相对于镜像发生变化的文件
docker run -d -it centos:7
docker cp 1.txt  容器id:/root
docker container diff  容器id

# export和import是一对导出镜像/导入镜像,他们和save和load的区别是(一般不使用)
# export导出的镜像只有一层,import导入的镜像是无名镜像
docker run -d kod:v2
docker export  容器id >docker_test.tar.gz
docker import  docker_test.tar.gz

# 查看镜像和容器的id
docker image inspect  镜像id
docker container inspect  容器id

# 将容器进行挂起
docker container  pause  容器id
# 将容器取消挂起
docker container  unpause  容器id

# 单纯看一下容器的端口映射,比较鸡肋,直接用docker ps查看即可(一般不用)
docker container port 容器id

# 清理停止状态的容器
docker container prune
# 清理没有标签的镜像
docker image prune

# 容器的监控,监控每个容器占用了多少资源
docker container stats  # 实时动态展示
docker container stats --no-stream  # 只显示一次

# 可以修改容器的属性,资源的限制
docker container update --help
##  只要docker已启动,这个容器就会启动
docker container update --restart always 容器id
## 更新资源的限制
[root@docker01 ~]# docker container update --memory 50MiB  --memory-swap  50MiB zabbix_zabbix-server_1
zabbix_zabbix-server_1
## 内存限制成功
[root@docker01 ~]# docker container stats --no-stream | grep zabbix_zabbix-server_1
f52e728c1856   zabbix_zabbix-server_1            0.25%     21.93MiB / 50MiB      43.87%    38MB / 19.5MB   0B / 0B          30

## 也可以启动容器的时候指定容器的资源
docker run -d --memory 10M kod:v3
docker container stats --no-stream

# 查看容器内的进程信息
docker container top 7ea8724b7da6 

# 容器停止后,返回容器内初始命令停止的$?的值
docker  container  wait 容器id

# 网络有关
docker network

# 数据卷有关
docker volume ls
docker volume prune # 清理卷,删除操作要谨慎

docker system df  # 查看镜像和容器和卷和构建缓存的信息
docker system prune  # 清理停止的容器、没有使用网络的容器、没有名字的镜像、没有使用的缓存
docker system info  # 查看docker的信息
Runtimes: runc # 如果容器的运行环境都是runc,容器镜像就可以通用
docker system event  # 查看事件,启动容器的会产生事件

2. docker-registry使用

实验环境:

10.0.0.11 docker01 安装私有仓库,充当服务端
10.0.0.12 docker02 充当客户端,上传下载镜像

# 1. 上传下载后的镜像,如果没有就会从官网仓库下载,启动私有仓库
[root@docker01 ~]# docker load -i registry.tar.gz
[root@docker01 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry

# 2. 在客户端进行配置镜像加速和添加信任私有仓库,并重启docker生效
[root@docker02 ~]# vim /etc/docker/daemon.json
{
   "registry-mirrors": ["https://registry.docker-cn.com"],
   "insecure-registries": ["10.0.0.11:5000"]
}
[root@docker01 ~]# systemctl restart docker

# 3. 镜像地址
## 镜像的名字决定了是官方镜像还是第三方仓库的镜像
nginx:1.15 官方仓库的官方镜像
nginx/nginx:1.15 官方仓库的用户镜像
daocloud.io/nginx/nginx:1.15 私有仓库的镜像

# 4. 上传镜像的步骤
(1) docker tag 打标签
(2) docker push 推镜像

# 5. 实战演练: 上传镜像和下载镜像
## 上传镜像,私有仓库也是分层存储的,如果上传的镜像在仓库中已经有镜像层了,那么只上传了标签
[root@docker02 ~]# docker tag alpine:3.9  10.0.0.11:5000/alpine:3.9
[root@docker02 ~]# docker image push 10.0.0.11:5000/alpine:3.9
## 下载镜像,下载镜像也是有分层
[root@docker02 ~]# docker image pull 10.0.0.11:5000/alpine:3.9

在这里插入图片描述

docker-registry仓库管理操作

# 1. 查看仓库里有哪些镜像
http://10.0.0.11:5000/v2/_catalog

# 2. 查看某个镜像有哪些版本
http://10.0.0.11:5000/v2/alpine/tags/list

# 3. 在仓库中删除镜像
## (1) 进入docker registry的容器中
[root@docker01 ~]# docker exec -it registry /bin/sh
ls /var/lib/registry/docker/registry/v2/
blobs  # 镜像的层信息         
repositories # 仓库的信息,存的各种镜像的名字
## (2) 删除repo
rm -fr /var/lib/registry/docker/registry/v2/repositories/alpine
## (3) 清楚掉blob
registry garbage-collect /etc/docker/registry/config.yml

# 4. 带认证的registry
yum install httpd-tools -y
mkdir /opt/registry-var/auth/ -p
htpasswd -Bbn admin 123456 >> /opt/registry-var/auth/htpasswd
docker run -d -p 5000:5000 -v /opt/registry-var/auth/:/auth/ -v /opt/myregistry:/var/lib/registry -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry

# 提示: 上传下载镜像都需要登陆
docker login 10.0.0.11:5000
admin/123456
# 登出私有仓库
docker logout 10.0.0.11:5000

小提示:
docker-registry优点:功能简单,占用资源比较少,推荐个人使用
docker-registry缺点:功能比较少,web界面操作不方便,不像docker hub一样在页面可以直接进行镜像的管理,所以生产一般用企业级的仓库harbor

3. docker-hub的使用

# (1) 登录docker hub,输入账号和密码
[root@docker01 ~]# docker login

# (2) 在alpine镜像打tag,然后push镜像到docker hub中个人的仓库
[root@docker01 ~]# docker tag  alpine:v1  d15926990/alpine:v1
[root@docker01 ~]# docker push d15926990/alpine:3.9

小提示: docker pull的时候默认是拉取的是最新的镜像latest,所以上传镜像的时候打一个v1版,在打一个latest版本,方便别人下载

4. 企业级私有仓库harbor

实验环境:

10.0.0.12 docker01 安装harbor,充当harbor服务端
10.0.0.11 docker02 充当客户端,上传下载镜像

harbor是在docker-registry的基础上进行的二次开发

4.1 harbor安装

# (1) 配置yum源
[root@docker02 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@docker02 ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

# (2) 配置信任的仓库,并重启docker
[root@docker01 ~]# cat /etc/docker/daemon.json
{
   "registry-mirrors": ["https://registry.docker-cn.com"],
   "insecure-registries": ["10.0.0.12"]
}
[root@docker01 ~]# systemctl restart docker

# (3) 安装docker-compose,安装harbor依赖docker-compose,可以在gitlhub上看相应的版本的安装步骤
[root@docker02 ~]# yum  install docker-compose -y 
[root@docker02 ~]# docker-compose -v

小提示: (了解即可,这样安装会有报错)
# epel源里面的docker-compose不是最新的,如果像安装最新的docker-compose,用pip去安装
yum install python-pip -y
# pip默认使用的是国外的源
pip install docker-compose
# 使用国内的源https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
pip install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple


# (4) 上传下载的harbor,并且进行解压,下载地址: https://github.com/goharbor/harbor/releases/download/v1.10.0/harbor-offline-installer-v1.10.0.tgz
[root@docker02 ~] mkdir harbor
[root@docker02 ~] cd harbor
[root@docker02 harbor]# tar xf harbor-offline-installer-v2.1.0.tgz
[root@docker02 harbor]# cd harbor
[root@docker02 harbor]# cp harbor.yml.tmpl harbor.yml

# (5) 修改配置文件
[root@docker02 harbor]# vim harbor.yml
hostname: 10.0.0.12
## 取消https的配置
harbor_admin_password: 123456

# (6) 执行安装脚本, 注意: 每次改完harbor.yml后,都要执行以下install.sh
[root@docker02 harbor]# ./install.sh
[root@docker02 harbor]# docker ps
CONTAINER ID   IMAGE                                COMMAND                  CREATED          STATUS                    PORTS                                   NAMES
e391d207c6c8   goharbor/harbor-jobservice:v2.1.0    "/harbor/entrypoint.…"   37 seconds ago   Up 34 seconds (healthy)                                           harbor-jobservice
c6c75effa454   goharbor/nginx-photon:v2.1.0         "nginx -g 'daemon of…"   37 seconds ago   Up 34 seconds (healthy)   0.0.0.0:80->8080/tcp, :::80->8080/tcp   nginx
7f92a6011fe1   goharbor/harbor-core:v2.1.0          "/harbor/entrypoint.…"   37 seconds ago   Up 36 seconds (healthy)                                           harbor-core
2c002af31254   goharbor/harbor-registryctl:v2.1.0   "/home/harbor/start.…"   40 seconds ago   Up 37 seconds (healthy)                                           registryctl
aa586c1e5eeb   goharbor/registry-photon:v2.1.0      "/home/harbor/entryp…"   40 seconds ago   Up 36 seconds (healthy)                                           registry
a91f8df80b77   goharbor/redis-photon:v2.1.0         "redis-server /etc/r…"   40 seconds ago   Up 37 seconds (healthy)                                           redis
3a8ae1794ca2   goharbor/harbor-portal:v2.1.0        "nginx -g 'daemon of…"   40 seconds ago   Up 36 seconds (healthy)                                           harbor-portal
2dc692066706   goharbor/harbor-db:v2.1.0            "/docker-entrypoint.…"   40 seconds ago   Up 38 seconds (healthy)                                           harbor-db
929feea38c1f   goharbor/harbor-log:v2.1.0           "/bin/sh -c /usr/loc…"   42 seconds ago   Up 39 seconds (healthy)   127.0.0.1:1514->10514/tcp               harbor-log

# (7) 访问harbor,并且push镜像到harbor仓库中
## 浏览器访问harbor
http://10.0.0.12

## docker登录到harbor服务器,注意:docker login 默认登录的是docker hub仓库
## 登录10.0.0.12的harbor服务,如果有服务器是域名docker login dk.harbor.com,需要重新进行密码认证
[root@docker01 ~]# docker login 10.0.0.12
[root@docker01 ~]# docker tag alpine:3.9 10.0.0.12/library/alpine:3.9
[root@docker01 ~]# docker push 10.0.0.12/library/alpine:3.9

在这里插入图片描述
在这里插入图片描述

4.2 harbor配置https

# (1) 修改harbor.yml,在阿里云或者腾讯云申请下来的证书配置到对应的路径中
[root@docker02 harbor]# vim harbor.yml
## 配置域名
hostname: dk.harbor.com
## 配置证书
https:
	port: 443
	certificate: /opt/certs/nginx/xxx.crt
	private_key: /opt/certs/nginx/xxx.key

# (2) 重新执行安装脚本
## 因为harbor已经安装完成,没必要重新导入镜像,所以可以注释导入镜像,加快脚本执行
[root@docker02 harbor]# vim install.sh
## docker load -i ./harbor*.tar.gz
[root@docker02 harbor]# ./install.sh

# (3) liunx和windows都要配置host劫持
## linux配置host劫持,用于docker pull镜像,域名解析
[root@docker01 ~]# vim /etc/hosts
10.0.0.12   dk.harbor.com

## windows的hosts劫持,用于域名访问harbor网站
C:\Windows\System32\drivers\etc/hosts
10.0.0.12   dk.harbor.com

4.3 harbor常见使用

4.3.1 harbor新建项目仓库

把一个项目的所有镜像都归类为一组,比如创建zabbix项目仓库

在这里插入图片描述
在这里插入图片描述

# (1) 查找相关zabbix的项目
[root@docker01 ~]# docker images | grep zabbix
zabbix/zabbix-server-mysql      latest    e36e7fa7e11a   6 years ago     106MB
zabbix/zabbix-web-nginx-mysql   latest    386dc9afc1c4   6 years ago     174MB
zabbix/zabbix-java-gateway      latest    4257519fd740   6 years ago     148MB

# (2) 将zabbix的项目打tag,上传到zabbix项目仓库
[root@docker01 ~]# docker tag zabbix/zabbix-server-mysql:latest 10.0.0.12/zabbix/zabbix-server-mysql:latest
[root@docker01 ~]# docker push 10.0.0.12/zabbix/zabbix-server-mysql:latest

在这里插入图片描述

4.3.2 harbor创建用户

在这里插入图片描述
在这里插入图片描述

linux后台操作

# harbor上用户创建好了之后,在linux后台要把之前docker login 10.0.0.12的账号密码删掉,重新认证
# cat /root/.docker/config.json, auth:"xxx" 这个密码是base64加密的
[root@docker01 ~]# rm -f  /root/.docker/config.json

# 使用zabbix用户进行登录,在进行docker pull,docker push
[root@docker01 ~]# docker login 10.0.0.12

4.3.3 harbor仓库管理

仓库管理:可以做主从同步,可以把别的仓库上的镜像,都拉取过来

在这里插入图片描述
在这里插入图片描述

4.3.4 harbor复制管理

复制管理: 同步的一个策略
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3.5 harbor删除镜像

删除镜像后,还需要垃圾清理

在这里插入图片描述

在这里插入图片描述

5. docker基础网络

5.1 四种基础网络类型

(1) brige  默认类型,NAT模式(172.17网段)
[root@docker01 ~]# docker run -d  alpine:3.9
[root@docker01 ~]# docker run -d --network brige alpine:3.9

(2) host   host类型,使用宿主机网络,网络性能最高
[root@docker01 ~]# docker run -d --network host alpine:3.9

(3) container 容器类型。使用其他容器共用网络,k8s中使用(跟其他容器共用网络,不属于一个单独的类型)
# 新启动的容器使用的网络要跟容器088f18113eeb一样,报错hosts解析,主机名,ip地址等都相同,但是一个容器占用3000端口,另一个就不能使用3000端口了
[root@docker01 ~]# docker run -d --network container:088f18113eeb alpine:3.9
# 启动一个监听端口为 3000 的服务器,用来测试端口占用问题
nc -l -p 3000

(4) none  没有网络,上不了外网
[root@docker01 ~]# docker run -d --network none alpine:3.9

5.2 创建自定义网络

brige网络默认使用的是172.17网段,如果想要使用其他网段,可以自定义一个网络

# (1) 创建自定义网络,-d就是DRIVER
[root@docker01 ~]# docker network create -d bridge --subnet 172.19.0.0/16 --gateway 172.19.0.1  dk_network

# (2) 查看所有的网络,dk_network网络的详细信息
## 查看所有的网络
[root@docker01 ~]# docker network ls
NETWORK ID     NAME             DRIVER    SCOPE
88e9df90483a   bridge           bridge    local
d9a0dfe597ea   dk_network       bridge    local
89ca93183afb   host             host      local
ff7f6a319b68   none             null      local
## 查看dk_network网络的详细信息
[root@docker01 ~]# docker network inspect dk_network

# (3) 启动一个容器,使用刚创建的网络dk_network
[root@docker01 ~]# docker run -it --network dk_network alpine:3.9

# (4) 启动容器,使用刚创建的网络dk_network,自定义网络可以指定ip地址
[root@docker01 ~]# docker run -it --network dk_network --ip 172.19.0.100 alpine:3.9

6. 跨宿主机容器网络类型

6.1 跨宿主机容器网络macvlan类型

macvlan类似与虚拟机的桥接网络

# (1) 在两台虚拟机上创建网络
[root@docker01 ~]# docker network create -d macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=eth0 macvlan_dk
[root@docker02 ~]# docker network create -d macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=eth0 macvlan_dk

# (2) 启动容器,使用macvlan_dk网络,并进行测试
## macvlan要手动管理ip地址,手动指定ip地址,否则容易ip地址冲突,虚拟机有检测ip地址冲突的机制,容器是没有的
[root@docker01 ~]# docker run -it --network macvlan_dk --ip 10.0.0.105 alpine:3.9
[root@docker02 ~]# docker run -it --network macvlan_dk --ip 10.0.0.106 alpine:3.9
/ # ping 10.0.0.105
PING 10.0.0.105 (10.0.0.105): 56 data bytes
64 bytes from 10.0.0.105: seq=0 ttl=64 time=1.414 ms
64 bytes from 10.0.0.105: seq=1 ttl=64 time=1.009 ms

--gateway 10.0.0.254 这个网关的ip地址与下图保持一致

在这里插入图片描述

6.2 跨宿主机容器网络overlay类型

docker03上: consul存储ip地址的分配
docker run --restart=always -d -p 8500 :8500 -h consul --name consul progrium/consul -server -bootstrap

docker01、 02 上:
vim /etc/docker/daemon.json
{
"cluster-store": "consul://10.0.0.13:8500",
"cluster-advertise": "10.0.0.11:2376"
}

vim /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker

2)创建overlay网络
docker network create -d overlay --subnet 172 .20.2.0/24 --gateway 172.20.2.254 ol1

3)启动容器测试
docker run -it --network ol1 --name test01 alpine:3.9 /bin/sh
每个容器有两块网卡,eth0实现容器间的通讯,eth1实现容器访问外网

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

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

相关文章

【JavaEE】Spring中注解的方式去获取Bean对象

【JavaEE】Spring的开发要点总结(3) 文章目录 【JavaEE】Spring的开发要点总结(3)1. 属性注入1.1 Autowired注解1.2 依赖查找 VS 依赖注入1.3 配合Qualifier 筛选Bean对象1.4 属性注入的优缺点 2. Setter注入2.1 Autowired注解2.2…

【漏洞复现】​金蝶云星空管理中心反序列化命令执行漏洞(RCE)

文章目录 前言声明一、系统简介二、漏洞描述三、影响版本四、漏洞复现五、整改意见 前言 ​金蝶云星空管理中心存在反序列化命令执行,攻击者可通过该漏洞获取敏感信息,进而接管服务器。 声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文…

Mybatis-plus 配置自定义sql(.xml文件)查询语句的步骤

这是使用Mybatis-plus 的自动生成实体类代码生成.xml文件, 所以他会在java目录下,不在resources目录下 如果在java目录下的xml文件,需要分别配置application.yml和pom.xml文件 application.yml 文件进行以下配置: mybatis-plus…

视频增强技术-对比度增强

在图像处理中,由于获取的图像质量不好,需要通过对比度增强来提升图片质量,主要解决的是由于图像灰度级范围较小造成的对比度较低的问题,作用是使图像的灰度级范围放大,从而让图像更加清晰。主要对比度增强方法包括线性…

CentOS 7.9 安装 mydumper(RPM方式)

链接:https://pan.baidu.com/s/1sGhtiKPOmJw1xj0zv-djkA?pwdtaoz 码:taoz 开始正文啦: rpm -ivh mydumper-0.14.5-3-zstd.el7.x86_64.rpm 问题如下: 解决: yum -y install epel-release yum install -y libzstd …

分布式消息流处理平台kafka(一)-kafka单机、集群环境搭建流程及使用入门

1.kafka概述 1.1 kafka的前世今生 kafka最初是LinkedIn的一个内部基础设施系统。最初开发的起因是,LinkedIn虽然有了数据库和其他系统可以用来存储数据,但是缺乏一个可以帮助处理持续数据流的组件。 所以在设计理念上,开发者不想只是开发一…

通过 EXPLAIN 分析 SQL 的执行计划

通过 EXPLAIN 分析 SQL 的执行计划 EXPLAIN SELECTleave_station_area_id,ROUND( ( SUM( station_dist ) / 1000 ) / ( SUM( station_travel_time ) / 60 ), 2 ) evnPeakAvgSpeedFROMV3_SHIFT_ANALYSISWHERESTAT_DATE DATE_SUB( CURRENT_DATE, INTERVAL 1 DAY )AND LEAVE_STA…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 20 日论文合集)

文章目录 一、分割|语义相关(11篇)1.1 Two Approaches to Supervised Image Segmentation1.2 Boundary-Refined Prototype Generation: A General End-to-End Paradigm for Semi-Supervised Semantic Segmentation1.3 Source-Free Domain Adaptive Fundus Image Segmentation w…

STL:vector的使用(初识迭代器迭代器失效)

vector也是动态类型的顺序表&#xff0c;可以存储任意类型的元素 string是动态类型顺序表&#xff0c;只能存储char vector< char >字符数组 string 字符串字符串结尾有\0&#xff0c;而vector是一个泛型类型&#xff0c;不能因为字符串需要\0&#xff0c;而对每个类型最…

分布式光伏并网防孤岛保护装置AM5SE-IS

分布式光伏并网防孤岛保护装置AM5SE-IS 应用场景 防孤岛原理&#xff1a;防孤岛保护装置检测到并网点有逆功率、频率突变、 等异常数据时&#xff0c;即发生孤岛现象时&#xff0c;装置可配合断路器快速切除并网点&#xff0c;使本站与电网侧快速脱离&#xff0c;保证整个电站…

jmeter随记3:常用jmeter功能(附带场景)

常用jmeter功能&#xff08;附带场景&#xff09; 一、jmeter其他特性1、请求的接口有多个 且 域名相同2、 jmeter支持统一管理参数的设置a、创建HTTP Header Managerb、用户定义参数c、csv数据文件设置 3、接口a的返回值作为 接口b的入参a、 json提取器b、 正则表达式 4、if c…

【密码学】二、古典密码

古典密码 1.置换密码1.1列置换密码1.2周期置换密码 2.代换密码2.1单表代换密码2.1.1凯撒密码2.1.2仿射密码 2.2多表代换密码2.2.1维吉尼亚密码2.2.2普莱费尔密码 3.轮转密码3.1恩尼格玛密码机Enigma3.1.1Enigma加密3.1.1Enigma解密 4.古典密码的分类5.古典密码的统计分析5.1单表…

【事业单位-语言理解1】中心理解02

【事业单位-语言理解1】中心理解02 1.中心理解1.1 并列关系1.2 主题词1.3程度词&#xff0c;表示强调 二、标题填入题&#xff08;优先考虑主题词&#xff09;三、词句理解题 1.中心理解 解题思路 1.1 并列关系 涉及时间顺序 注意选项不要逻辑不当 并列关系的时候&…

07统计模型练习

使用SPSS进行分析求解 第一题 下表1.1是中国1994-2016年国内旅游总花费Y、国内生产总值X1、铁路里程X2和公路里程X3的数据,请据此分析如下问题: (1)就建立简单线性回归模型,分别分析中国国内旅游总花费与国内生产总值、铁路里程和公路里程数据的数量关系。 (2)对建立的回归模型…

K8S下如何搭建eureka集群

背景 传统应用上云&#xff0c;基于传统应用需要考虑上云的方案和改造成本&#xff0c;这也是传统应用上云过程中的难点&#xff0c;本篇介绍3台eureka搭建的方案。 方案一 此方案借助了K8S中Service的一些功能。 这种方案是传统方案的简单迁移版本&#xff0c;比较易于理解…

前端 | ( 十一)CSS3简介及基本语法(上) | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 系列笔记&#xff1a; 【HTML4】&#xff08;一&#xff09;前端简介【HTML4】&#xff08;二&#xff09;各种各样的常用标签【HTML4】&#xff08;三&#xff09;表单及HTML4收尾…

一键批量JSON标注转PNG图片工具V1.1,支持labelme快捷矩形、圆以及轮廓标注

上次发布了一个批量将labelme标注的json文件转换为png文件工具&#xff0c;但是当时只是想着自己用的&#xff0c;功能相当简单&#xff0c;一些网友使用之后跟我反馈这玩意真”垃圾“&#xff0c;很多情况都没有进行设想&#xff0c;所以在功能上很欠缺。由于小陶这几天在外地…

Rust vs Go:常用语法对比(三)

题图来自When to use Rust and when to use Go[1] 41. Reverse a string 反转字符串 package mainimport "fmt"func Reverse(s string) string { runes : []rune(s) for i, j : 0, len(runes)-1; i < j; i, j i1, j-1 { runes[i], runes[j] runes[j], runes[i]…

高等数学❤️第一章~第三节~极限❤️连续函数的运算与初等函数的连续性~连续函数的运算

【精讲】高等数学中连续函数的运算 博主&#xff1a;命运之光的主页 专栏&#xff1a;高等数学 目录 【精讲】高等数学中连续函数的运算 导言 一、连续函数的运算规则 二、连续函数的性质 必需记忆知识点 例题&#xff08;用于熟悉高等数学中连续函数的运算&#xff09;…

【Java基础教程】(四十二)多线程篇 · 上:多进程与多线程、并发与并行的关系,多线程的实现方式、线程流转状态、常用操作方法解析~

Java基础教程之多线程 上 &#x1f539;本节学习目标1️⃣ 线程与进程&#x1f50d;关于多进程、多线程、并发与并行之间的概念关系&#xff1f; 2️⃣ 多线程实现2.1 继承 Thread 类2.2 实现 Runnable 接口2.3 多线程两种实现方式的区别2.4 利用 Callable 接口实现多线程2.5 …