docker的使用

docker安装

https://docs.docker.com/engine/install/debian/

设置国内镜像

创建或修改 /etc/docker/daemon.json 文件,修改为如下形式

{
    "registry-mirrors": [
        "https://registry.hub.docker.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com"
    ]
}

重启docker

systemctl restart docker

查看是否成功

docker info

docker的网络模式

docker的四种网络模式:

Docker网络模型配置说明
host模式–-network=host容器和宿主机共享Network namespace。
container模式–network=container:ID容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。
none模式–network=none容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。
bridge模式–network=bridge当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。(默认为该模式)

​ Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法通过直接Container-IP访问到容器。如果容器希望外部访问能够访问到,可以通过映射容器端口到宿主主机(端口映射),即docker run创建容器时候通过 -p 或 -P 参数来启用,访问容器的时候就通过[宿主机IP]:[容器端口]访问容器。

host模式

​ 如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。

​ 使用host模式的容器可以直接使用宿主机的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好。

image-20230613091756458

案例:
docker run -d --network=host nginx
netstat -tunlp
curl 127.0.0.1

image-20230613092404726

Container模式

​ 这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信。

image-20230613092535411

案例:
docker run -itd --name centos centos
docker run -d --network "container:centos" --name nginx nginx
docker exec -it centos bash
curl 127.0.0.1
// 基于镜像centos:centos7创建一个名为centos的容器
[root@bogon ~]# docker run -itd --name centos centos:centos7
d497dd0765201ee7e6c65c7c5732cd5d252153ab64ed8a45afb036ac6f9528ae
// 基于镜像nginx:latest创建一个名为nginx的容器,使用container网络模式,和centos容器共享network namespace
[root@bogon ~]# docker run -d --network "container:centos" --name nginx nginx
25e3618f76477568a330df28c1768db61d50ecbebfb2d22f18bf6893b759efc2
[root@bogon ~]# docker exec -it centos bash
[root@d497dd076520 /]#
[root@d497dd076520 /]# curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

none模式

​ 使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。这种网络模式下容器只有lo回环网络,没有其他网卡。none模式可以在容器创建时通过–network=none来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。

image-20230613094958478

案例:
[root@bogon ~]# docker run -it --network=none centos bash
[root@207c8a237672 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever

bridge模式

​ bridge模式是docker的默认网络模式,不写–net参数,就是bridge模式。

​ 当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。

​ 从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中。可以通过brctl show命令查看。

​ bridge模式是docker的默认网络模式,不写–net参数,就是bridge模式。使用docker run -p时,docker实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL查看。

image-20230613095943419

案例:
  • 创建名为dzg的网桥
  • 创建容器centos,使用dzg网桥
  • 创建容器nginx,使用dzg网桥
  • 容器centos内访问容器nginx看通不通
// 创建名为wyx的网桥,使用bridge模式
docker network create --driver bridge wyx
docker run -d --network wyx nginx
docker run -d --network wyx --name nginx nginx
docker run -itd --network wyx --name centos centos
docker ps
docker exec -it centos bash
curl 127.0.01
curl nginx
curl gracious_keller
[root@bogon ~]# docker network create --driver bridge wyx
d973f6c7f0cb264dd96873bcb89c39e954dd1da02816898f9a25de190596ef2d
[root@bogon ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
e090fb6ad251   bridge    bridge    local
ab7d0ceecd68   host      host      local
cc697cee3aab   none      null      local
d973f6c7f0cb   wyx       bridge    local
[root@bogon ~]# docker run -d --network wyx nginx
2f1708f47b7262331cd09f0a429123c5af5fea019c2bd53cad829c3585123a5e
[root@bogon ~]# docker run -d --network wyx --name nginx1 nginx
0af7caff76abf5f9f808809561b8c11e59558817298ab68776c932a36f44ca4f
[root@bogon ~]# docker run -itd --network wyx --name centos1 centos
b55321b6aed5d9828a02740128526016cdc0023579901b7518115b4cf687ea22
[root@bogon ~]# docker ps
CONTAINER ID   IMAGE            COMMAND                  CREATED              STATUS              PORTS     NAMES
b55321b6aed5   centos           "/bin/bash"              4 seconds ago        Up 3 seconds                  centos1
0af7caff76ab   nginx            "/docker-entrypoint.…"   40 seconds ago       Up 38 seconds       80/tcp    nginx1
2f1708f47b72   nginx            "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp    hardcore_euler
25e3618f7647   nginx            "/docker-entrypoint.…"   37 minutes ago       Up 37 minutes                 nginx
d497dd076520   centos:centos7   "/bin/bash"              40 minutes ago       Up 40 minutes                 centos
d3eeb6236117   nginx            "/docker-entrypoint.…"   47 minutes ago       Up 47 minutes                 mystifying_lewin
7a79246a86c1   golang:latest    "/bin/bash"              17 hours ago         Up 17 hours                   golang
[root@bogon ~]# docker exec -it centos1 bash
[root@b55321b6aed5 /]# curl 127.0.0.1
curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused
[root@b55321b6aed5 /]# curl nginx1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@b55321b6aed5 /]# curl hardcore_euler
curl: (6) Could not resolve host: hardcore_euler

docker中创建网桥

要在Docker中创建一个网桥,可以使用以下命令:

docker network create --driver bridge <bridge-name>

其中,<bridge-name>是您想要为网桥指定的名称,可以根据您的需要选择一个适当的名称。

例如,如果您要创建一个名为my-bridge的网桥,可以执行以下命令:

docker network create --driver bridge my-bridge

执行该命令后,Docker将创建一个名为my-bridge的网桥,并使其可供容器使用。

您还可以使用其他选项来自定义网桥的属性。例如,您可以指定子网、网关、IP范围等。以下是一个示例:

docker network create --driver bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 --ip-range 192.168.0.2/24 my-bridge

在上述示例中,我们使用--subnet参数指定了子网,--gateway参数指定了网关地址,--ip-range参数指定了可用IP范围。

创建网桥后,您可以使用docker network ls命令来列出所有可用的Docker网络,并验证是否成功创建了您指定的网桥。

docker network ls

创建网桥后,您可以在创建容器时使用--network参数将容器连接到该网桥。

docker run --network=my-bridge <image>

请注意,网桥的名称在整个Docker环境中必须是唯一的。

镜像备份

备份命令:

docker save -o <备份文件名>.tar <镜像名>:<镜像标签>

例如:

// 提交修改为新的镜像
[root@localhost ~]# docker commit -m="update" -a="wyx" centos-wyx wyx/centos:v11
sha256:7441441b7d3a18c28dbd65264acd66e84d3ce0cbc7a7e41e5e4f696aad2c25da
[root@localhost ~]# docker images
REPOSITORY               TAG       IMAGE ID       CREATED         SIZE
wyx/centos               v11       7441441b7d3a   4 seconds ago   722MB
centos                   centos7   eeb6ee3f44bd   20 months ago   204MB
// 导出镜像
[root@localhost ~]# docker save -o wyx_centos.tar wyx/centos:v11
[root@localhost ~]# ls
anaconda-ks.cfg  wyx_centos.tar

还原镜像命令:

docker load -i <备份文件名>.tar

例如:

// 删除镜像
[root@localhost ~]# docker rmi wyx/centos:v11
Untagged: wyx/centos:v11
Deleted: sha256:7441441b7d3a18c28dbd65264acd66e84d3ce0cbc7a7e41e5e4f696aad2c25da
Deleted: sha256:7b876d24a8c5c0c19331399c7a1daea5bafd74c93651c4266a715139f8cf0c89
[root@localhost ~]# docker images
REPOSITORY               TAG       IMAGE ID       CREATED         SIZE
centos                   centos7   eeb6ee3f44bd   20 months ago   204MB
// 导入镜像
[root@localhost ~]# docker load -i wyx_centos.tar
2a1dc067ebe6: Loading layer [==================================================>]  525.9MB/525.9MB
Loaded image: wyx/centos:v11
[root@localhost ~]# docker images
REPOSITORY               TAG       IMAGE ID       CREATED         SIZE
wyx/centos               v11       7441441b7d3a   4 minutes ago   722MB
centos                   centos7   eeb6ee3f44bd   20 months ago   204MB

容器快照

导出容器快照

docker export xxxid > xxx.tar

导入容器快照

cat  xx.tar |docker import - test/xxx:v1
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE            COMMAND                  CREATED       STATUS          PORTS                                   NAMES
5a01f5369421   nginx            "/docker-entrypoint.…"   4 hours ago   Up 50 minutes   0.0.0.0:8000->80/tcp, :::8000->80/tcp   nginx-wyx
230052e2c48e   centos:centos7   "/bin/bash"              4 hours ago   Up 46 minutes                                           centos-wyx
// 导出容器备份
[root@localhost ~]# docker export centos-wyx > centos-weiyuexin.tar
[root@localhost ~]# ls
anaconda-ks.cfg  centos-weiyuexin.tar
// 导入容器备份为镜像
[root@localhost ~]# cat centos-weiyuexin.tar |docker import - weiyuexin/centos:v666
sha256:abc0612f96b821c7e253798130fcf742cb9b092e52b9cc0619135f9614fabd9e
[root@localhost ~]# docker images
REPOSITORY               TAG       IMAGE ID       CREATED          SIZE
weiyuexin/centos         v666      abc0612f96b8   4 seconds ago    573MB
centos                   latest    5d0da3dc9764   20 months ago    231MB

docker指定CPU和内存

修改CPU

[root@localhost ~]# docker update --cpus 2 nginx-wyx
nginx-wyx 

修改内存限制

[root@localhost ~]# docker stats --no-stream
CONTAINER ID   NAME         CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O        PIDS
5a01f5369421   nginx-wyx    0.00%     3.191MiB / 7.638GiB   0.04%     2.58kB / 2.48kB   0B / 0B          5
230052e2c48e   centos-wyx   0.00%     83.78MiB / 7.638GiB   1.07%     11.2MB / 95.7kB   12.7MB / 7.3MB   1
// 修改内存限制
[root@localhost ~]# docker update -m 2G --memory-swap -1 nginx-wyx
nginx-wyx
[root@localhost ~]# docker stats --no-stream
CONTAINER ID   NAME         CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O        PIDS
5a01f5369421   nginx-wyx    0.00%     3.191MiB / 2GiB       0.16%     2.58kB / 2.48kB   0B / 0B          5
230052e2c48e   centos-wyx   0.00%     83.78MiB / 7.638GiB   1.07%     11.2MB / 95.7kB   12.7MB / 7.3MB   1

容器常用命令

启动容器

docker run -it nginx /bin/bash
后台运行 -d

查看容器运行状态

docker ps
-q 只显示容器id
-a 输出所有容器

指定端口映射

docker run -p <host-port>:<container-port> <image>

启动一个暂停运行的容器

docker start <容器id/name>

暂停容器

docker pause <容器id/name>

停止容器

docker stop <容器id/name>

进入容器

  • docker attach 进入后退出时会停止容器
  • docker exec 使用ctrl+d退出不会停止容器
docker exec -it <容器id/name> /bin/bash

导出容器快照

docker export xxxid > xxx.tar

导入容器快照

cat  xx.tar |docker import - test/xxx:v1

删除容器

docker rm <容器id/name>
-f 强制删除
删除 所有未被 tag 标记和未被容器使用的镜像:
docker image prune

删除 所有未被容器使用的镜像:
docker container prune

删除所有未被挂载的卷
docker volume prune

删除所有网络
docker network prune

删除所有容器
docker system prune

清理所有处于终止状态的容器
docker prune

查看容器状态

docker stats

查看容器内的进程

docker top

统计容器信息

docker system df

查看容器标准输出

docker logs
-f 持续输出
–details 打印详细信息
-n 打印最近n 条日志

查看容器元数据信息

docker inspect <镜像>

查看镜像sha256 Hash值

docker images --digests

查看docker网络

docker network ls

查看容器映射端口

docker port

查看容器变更

docker diff

更新配置

docker update
参数描述
–blkio-weight块 IO(相对权重),介于 10 和 1000 之间,或 0 禁用(默认 0)
–cpu-period限制 CPU CFS(完全公平调度器)周期
–cpu-quota限制 CPU CFS(完全公平调度器)配额
–cpu-rt-period以微秒为单位限制 CPU 实时周期
–cpu-rt-runtime以微秒为单位限制 CPU 实时运行时间
–cpu-shares,-cCPU 份额(相对权重)
–cpusCPU数量
–cpuset-cpus允许执行的 CPU (0-3, 0,1)
–cpuset-mems允许执行的 MEM (0-3, 0,1)
–kernel-memory内核内存限制
–memory,-m内存限制
–memory-reservation内存软限制
–memory-swap交换限制等于内存加上交换:‘-1’ 启用无限交换
–pids-limit调整容器 pids 限制(设置 -1 表示无限制)
–restart容器退出时应用的重启策略

拷贝文件

// 从主机复制到容器
docker cp host_path containerID:container_path
// 容器复制到主机
docker cp containerID:container_path host_path
-a 打包模式复制文件会带有原始信息的uid/gid 信息
-L 跟随软连接

启动所有镜像

docker start $(docker ps -a -q)

stop停止所有容器

docker stop $(docker ps -a -q)

remove删除所有容器

docker rm $(docker ps -a -q) 

删除所有镜像

docker rmi $(docker images -q)

Docker开启远程API访问

vi /lib/systemd/system/docker.service
# -- 找到[Service]下面的:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# -- 改为如下:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock -H fd:// --containerd=/run/containerd/containerd.sock

修改配置后重启

systemctl daemon-reload          # 重新加载守护进程配置
systemctl restart docker.service # 重启 docker 服务

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

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

相关文章

音频光耦合器

音频光耦合器是一种能够将电信号转换为光信号并进行传输的设备。它通常由发光二极管&#xff08;LED&#xff09;和光敏电阻&#xff08;光电二极管或光敏电阻器&#xff09;组成。 在音频光耦合器中&#xff0c;音频信号经过放大和调节后&#xff0c;被转换为电流信号&#xf…

opencv基础40-礼帽运算(原始图像减去其开运算)cv2.MORPH_TOPHAT

礼帽运算是用原始图像减去其开运算图像的操作。礼帽运算能够获取图像的噪声信息&#xff0c;或者得到比原始图像的边缘更亮的边缘信息。 例如&#xff0c;图 8-22 是一个礼帽运算示例&#xff0c;其中&#xff1a; 左图是原始图像。中间的图是开运算图像。右图是原始图像减开运…

LeetCode 热题 100 JavaScript--543. 二叉树的直径

给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 var diameterOfBinaryTree function(root) {var maxDiameter…

多雷达探测论文阅读笔记:雷达学报 2023, 多雷达协同探测技术研究进展:认知跟踪与资源调度算法

多雷达协同探测技术 原始笔记链接:https://mp.weixin.qq.com/s?__biz=Mzg4MjgxMjgyMg==&mid=2247486627&idx=1&sn=f32c31bfea98b85f2105254a4e64d210&chksm=cf51be5af826374c706f3c9dcd5392e0ed2a5fb31ab20924b7dd38e1b1ae32abe9a48afa8174#rd ↑ \uparrow …

视频过大如何压缩变小?文件压缩技巧分享

如何压缩视频是许多视频编辑者、视频上传者经常遇到的问题&#xff0c;如果你也遇到了这个问题&#xff0c;不用担心&#xff0c;下面将就给大家分享几个视频压缩方法&#xff0c;可以帮助大家轻松地压缩视频&#xff0c;同时保持视频的高清晰度和音频质量。 一、嗨格式压缩大师…

【Kubernetes】

目录 一、Kubernetes 概述1、K8S 是什么&#xff1f;2、为什么要用 K8S?3、Kubernetes 集群架构与组件 二、核心组件1、Master 组件2、Node 组件3、K8S创建Pod的工作流程&#xff1f;&#xff08;重点&#xff09;4、K8S资源对象&#xff08;重点&#xff09;5、Kubernetes 核…

Java课题笔记~ MyBatis入门

一、ORM框架 当今企业级应用的开发环境中&#xff0c;对象和关系数据是业务实体的两种表现形式。业务实体在内存中表现为对象&#xff0c;在数据库中变现为关系数据。当采用面向对象的方法编写程序时&#xff0c;一旦需要访问数据库&#xff0c;就需要回到关系数据的访问方式&…

偶数科技亮相第十届中国中小企业投融资交易会

第十届中国中小企业投融资交易会暨2023“小企业 大梦想”高峰论坛近日在北京举办。本届大会以“金融活水精准滴灌 专精特新体制增量”为主题&#xff0c;通过展览展示、论坛活动、项目路演、产融对接等形式&#xff0c;搭建了专精特新企业与金融机构之间、与地方政府之间的产融…

虹科活动 | 走进宇通客车-汽车新供应链技术展精彩回顾

引言 7月27日&#xff0c;走进宇通客车-汽车新供应链技术展于宇通研发中心成功举办&#xff0c;本次展会中虹科为大家带来了一体化车载天线与车辆GNSS仿真测试方案&#xff0c;感谢您前来探讨与交流&#xff01; 精彩产品一览 车辆GNSS仿真测试方案 虹科高性能GNSS模拟器具有灵…

Dockerfile构建LNMP镜像

建立工作目录 [rootlocalhost ~]# mkdir lnmp [rootlocalhost ~]# cd lnmp/ 编写Dockerfile文件 [rootlocalhost lnmp]# vim Dockerfile [rootlocalhost lnmp]# ll 总用量 4 -rw-r--r--. 1 root root 774 8月 3 14:54 Dockerfile [rootlocalhost lnmp]# vim Dockerfile #基础…

web前端转正工作总结范文5篇

web前端转正工作总结&#xff08;篇1&#xff09; 来到__有限公司已经三个月了&#xff0c;目前的工作是前端开发&#xff0c;我是一名应届毕业生&#xff0c;之前没有过工作经验&#xff0c;在刚来到__这个大家庭的时候&#xff0c;我就被这里的工作气氛深深地吸引&#xff0…

极狐GitLab 全新「价值流仪表盘」使用指南

本文来源&#xff1a;about.gitlab.com 作者&#xff1a;Haim Snir 译者&#xff1a;极狐(GitLab) 市场部内容团队 GitLab / 极狐GitLab 价值流仪表盘的使用相对简单&#xff0c;这种可以定制化的仪表盘能够让决策者识别数字化转型进程中的趋势及机遇。 如果你已经在用 GitLab…

17、YML配置文件及让springboot启动时加载我们自定义的yml配置文件的几种方式

YML配置文件及加载自定义配置文件的几种方式 ★ YAML配置文件 其实本质和.properties文件的是一样的。 Spring Boot默认使用SnakeYml工具来处理YAML配置文件&#xff0c;SnakeYml工具默认就会被spring-boot-starter导入&#xff0c;因此无需开发者做任何额外配置。 YAML本质…

《Python入门到精通》循环语句 while循环,for循环

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 循环语句 1、语法格式1.1、while1.2、死循环1.3、简写形式 2、continue 跳过循环…

【数据结构练习题】单链表问题解决(虚拟头节点法,递归,快慢指针法)

目录 1.删除单链表中的元素1.1 删除排序链表中的重复元素1.2 删除排序链表中的重复元素Ⅱ1.3 移除链表元素 2.反转链表2.1 反转链表2.2 反转链表Ⅱ 3.查找链表中结点3.1 链表的中间结点3.2 链表中倒数第k个节点 4.回文链表5.相交链表6.合并链表 知识补充&#xff1a; 递归三要素…

【GITHUB】FlipIt – Windows的开源翻页时钟

FlipIt 是一款免费开源的翻页时钟应用&#xff0c;专为 Windows 平台设计。该应用灵感来源于备受喜爱的老牌翻页时钟应用 Fliqlo&#xff0c;后者被公认为经典的翻页时钟屏保。然而&#xff0c;由于 Fliqlo 是基于 Flash 技术开发的&#xff0c;随着微软最近正式禁用 Flash&…

非凸科技受邀参加中科大线上量化分享

7月30日&#xff0c;非凸科技受邀参加由中国科学技术大学管理学院学生会、超级量化共同组织的“打开量化私募的黑箱”线上活动&#xff0c;分享量化前沿以及求职经验&#xff0c;助力同学们拿到心仪的offer。 活动上&#xff0c;非凸科技量化策略负责人陆一洲从多个角度分享了如…

跑步用哪款耳机比较好、最适合跑步用的蓝牙耳机推荐

运动时聆听音乐可以为枯燥的过程带来娱乐&#xff0c;并且能够转移注意力&#xff0c;让人忽略身体负荷带来的不适感。而一款出色的运动耳机则成为锻炼过程中的重要辅助&#xff0c;它能够帮助控制节奏&#xff0c;使运动过程更加愉悦和高效。以下是一些备受推崇的热门运动耳机…

安卓手机录屏怎么把小白点去掉?试试这种方法

随着安卓手机功能的不断升级&#xff0c;录屏已经成为了一项基本功能。然而&#xff0c;当我们录制完视频后&#xff0c;常常会发现视频中有许多小白点&#xff0c;影响了视频的美观度。那么&#xff0c;如何去除这些小白点呢&#xff1f;本文将为大家介绍几种简单易行的方法。…

Linux系统jenkins+newman+postman持续集成环境搭建

1、首先安装nodejs 下载nodejs压缩包&#xff0c;下载地址&#xff1a;nodejs官网下载 建议不用下载最新的&#xff0c;我这里用的是推荐的v12.18版本 下载和解压命令 wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz解压安装包&#xff08;记得没有z&…