Docker 常用命令(未完待续...)

news2024/11/18 23:30:37

Docker 常用命令(未完待续...)

  • 命令的完整名称和别名
  • 帮助
  • 登录和搜索命令 (Login and Search Commands)
  • 其他管理命令 (Other Management Commands)
  • 镜像命令 (Image Commands)
  • 容器命令 (Container Commands)
    • docker run 从镜像创建并运行一个新的容器
      • docker run 运行一个容器,并让其不会自动退出
      • docker run --rm 临时运行容器
      • docker run --volume 绑定挂载
      • docker run --mount 绑定挂载
    • docker attach 进入运行中的容器
    • docker exec 在运行中的容器执行命令
    • docker cp 复制文件
    • docker logs 查看容器日志
  • 网络命令 (Network Commands)
    • docker network create 创建网络
      • 创建 bridge 网络
      • **创建 None 网络**
      • 创建 Host 网络
      • * 创建 Overlay 网络
      • 创建 Macvlan 网络
        • 在两台主机上创建相同的 macvlan 网络,并运行容器,互 Ping
      • * 创建 IPvlan 网络
    • docker network connect 连接容器到网络
  • 卷命令 (Volume Commands)
  • 参考资料

命令的完整名称和别名

镜像命令 为例:
全名: docker image xx 所有镜像命令都以 docker image 开头
别名: docker xx 也就是我们常用的简写方式,省掉了中间的 image

其他比如 容器命令网络命令 等等也都是同理。为了省点字,同时也符合使用习惯,下文中有别名的就用别名了。

帮助

命令说明
docker --help查看帮助信息
docker 命令 --help查看指定命令的帮助信息
官方文档 Docker 命令行基础命令查看更详细的说明

登录和搜索命令 (Login and Search Commands)

命令说明示例
docker login登录注册表docker login
docker logout从注册表登出docker logout
docker search在 Docker Hub 上搜索镜像
docker search 镜像名
docker search nginx

其他管理命令 (Other Management Commands)

命令说明示例
docker system管理 Dockerdocker system <command>
- 显示 Docker 磁盘使用情况docker system df
- 从服务器获取实时事件docker system events
- 显示系统范围的信息docker system info
- 移除未使用的数据docker system prune
docker version显示 Docker 版本信息docker version
docker info显示系统范围的信息docker info

镜像命令 (Image Commands)

my_image 用于举例的镜像名称
my_image:latest 用于举例的镜像名称,带版本号

——— 命 令 ———
说明示例(名称可以换成ID
docker images列出镜像
列出所有镜像,但只显示ID
docker images
docker images -aq
docker pull从仓库下载镜像
docker pull 镜像
无版本号,默认最新镜像:[版本号]
docker pull my_image
docker push将镜像上传到仓库docker push my_image
docker rmi本地移除一个或多个镜像
删除所有镜像
docker rmi my_image
docker rmi $(docker images -aq)
docker tag给镜像加标记
docker tag 镜像 标签
执行后会多出一个镜像引用,注意看ID是相同的
docker tag my_image:latest my_repo/my_image:1.0
docker save保存一个或多个镜像到 tar 归档
docker save -o 归档文件 镜像
docker save -o image.tar my_image
docker load从 tar 归档或标准输入加载镜像(对应docker save)
docker load --input 归档文件
docker load < 归档文件
docker load --input image.tar
docker load < image.tar
docker import从一个归档文件(比如 tar)创建一个 Docker 镜像。
(不限于 docker 导出的 tar)
docker import export导出的文件
docker history显示镜像的历史记录docker history my_image
docker build用 Dockerfile 构建镜像docker build -t my_image .

容器命令 (Container Commands)

my_container 用于举例的容器名称

 命 令 选 项 ——说明示例 (名称可以换成ID
docker ps列出运行的容器docker ps
列出所有的容器docker ps -a
列出运行的容器(只显示ID)docker ps -q
列出所有的容器 IDdocker ps -aq
docker run从镜像创建并运行一个新的容器docker run my_container
docker attach将本地的标准输入、输出和错误流附加到正在运行的容器docker attach my_container
docker exec在运行中的容器内执行命令docker exec -it my_container /bin/bash
docker create创建一个新的容器docker create --name my_container busybox echo Hello World
docker start启动一个或多个容器docker start my_container
docker restart重启一个或多个容器docker restart my_container
docker pause暂停一个或多个容器内的所有进程docker pause my_container
docker unpause恢复一个或多个暂停的容器docker unpause my_container
docker stop停止一个或多个运行中的容器
相当于正常关机
docker stop my_container
docker kill终止一个或多个运行中的容器
相当于强制关机,一般用于结束卡死的容器
docker kill my_container
docker rename重命名容器docker rename my_container new_name
docker commit从容器的更改创建一个新的镜像docker commit my_container my_new_image
docker rm移除一个或多个容器docker rm my_container
删除所有容器:docker rm $(docker ps -aq)
docker cp在容器和本地文件系统之间复制文件/文件夹docker cp my_container:/path/in/container /local/path
docker diff检查容器文件系统的更改docker diff my_container
docker port列出容器的端口映射或特定映射docker port my_container
docker logs获取容器的日志docker logs my_container
docker top显示容器中正在运行的进程docker top my_container
docker inspect返回关于 Docker 对象的底层信息docker inspect my_container
docker export将指定容器的当前状态存档为 tar
后续可导入再运行实现取档
对应 docker import(这种方式导出的 tar 是不限于 Docker 的,比如可以导去 WS)
参考: Wni11 下 WSL 安装 CentOS

docker run 从镜像创建并运行一个新的容器

格式:docker run [选项] <镜像名/ID> [容器运行起来后会执行的命令] [命令参数…]
以下是常见用法及参数说明:

docker run 参 数说明举例
-d以守护式(后台)模式运行容器docker run -d nginx
在后台启动一个 Nginx 容器。
-p将容器的端口映射到主机端口docker run -p 8080:80 nginx
将主机的 8080 端口映射到容器的 80 端口,
可通过访问主机的 8080 端口访问容器中的 Nginx 服务。
–name为容器指定一个名称docker run --name mynginx nginx
为容器命名为“mynginx”。
-e设置环境变量docker run -e KEY=VALUE nginx
在容器中设置环境变量 KEY 为 VALUE。
比如 mysql 容器就可以用它设置 root 密码
–network指定容器的网络模式docker run --network 网络名 镜像
使用默认的桥接网络模式启动容器。
也可以指定其他网络模式如 hostnone 等。
–restart设置容器的重启策略docker run --restart always nginx
容器退出时总是自动重启。
-it以交互模式运行容器,并为容器分配一个伪终端docker run -it ubuntu /bin/bash
启动一个 Ubuntu 容器并进入其命令行界面。
–rm当容器退出时,自动删除该容器及其关联的匿名卷。docker run --rm nginx
启动一个 nginx 容器。退出时容器会自动清理掉。
-w, --workdir设置当前工作目录。如果目录不存在,会在容器中自动创建docker run -it -w /app ubuntu ls
启动 ubuntu 后会默认以 /app 为当前路径,并执行 ls
-v, --volume将主机目录挂载到容器中docker run -v /host/path:/container/path nginx
将主机上的 /host/path 目录
挂载到容器中的 /container/path
方便在容器和主机之间共享数据。
–mount-v 基本相同,但是它的参数是以参数名=参数值 的方式提供,语义清晰推荐使用。
当挂载到容器中已有的目录时与 -v 不同,它会用源目录冒充容器中的目录.
docker run -it --mount type=bind,source=/test,target=/test nginx

docker run 运行一个容器,并让其不会自动退出

  • -d:容器在后台运行,不会把容器的输出打印到当前终端。
  • -i:保持容器的标准输入打开,即使没有连接到终端,容器也可以接收输入。
  • -t:为容器分配一个伪终端(pseudo-tty),使得容器的输出可以像在终端中一样显示。
  • dit:实现运行一个容器并让它保持住不自动退出。
docker run -dit --name bb1 busybox

docker run --rm 临时运行容器

默认情况下,容器退出后其文件系统和相关数据仍然保留,便于调试和数据持久化。
使用 --rm 可以让容器退出时自动清除容器并删除匿名卷(与容器关联的匿名卷)。

docker run --rm -it busybox sh

docker run --volume 绑定挂载

当绑定挂载的卷的主机目录不存在时,Docker会自动为你在主机上创建这个目录。

  • –volume 挂载文件
    格式:docker run -v <宿主机文件>:<容器中文件> <镜像>

    1. 宿主机中在当前目录下生成一个 hostname 文件
    2. 将当前目录下的文件./hostname挂载为容器中的/etc/hostname
    3. 最后执行 cat /etc/hostname 查看显示 hahaha
    4. 因为测试用懒得手删,加 --rm 退出容器自动清理
    echo hahaha > hostname
    docker run --rm -v ./hostname:/etc/hostname busybox cat /etc/hostname 
    

    对比下原始内容,是类似这样的字符串 18a8c1299f0f

    docker run --rm busybox cat /etc/hostname
    
  • –volume 只读挂载
    在容器中挂载点后加上:ro 即为只读。现在进去写一下,保存就会看到只读警告了。

    docker run --name bb -v ./hostname:/etc/hostname:ro -it busybox sh
    
  • –volume 挂载目录
    将当前路径下的html目录./html 挂载到容器中 /usr/share/nginx/html 如果目标存在则覆盖。

    1. 我事先在./html下生成了几个测试文件,nginx 镜像里绝对不会存在。
    2. 容器起来后会运行 ls /usr/share/nginx/html 一看便知和宿主机的./html 内容一样。
    docker run --rm -p 80:80 -v ./html:/usr/share/nginx/html nginx ls /usr/share/nginx/html
    

    对比下原始内容,原本有 50x.html,index.html 两个文件

    docker run --rm  -p 80:80 nginx ls /usr/share/nginx/html
    

docker run --mount 绑定挂载

--mount 允许你在容器中挂载主机目录tmpfs 挂载。
--mount 支持 --volume 支持的大多数选项,但使用不同的语法。
尽管没有计划弃用 --volume,但 建议 使用 --mount

  • –mount 支持的几种类型
type说明
bind挂载宿主机中的文件目录容器中
1. 绑定挂载通常用于将宿主机文件目录共享给容器中的程序使用,
2. 比如开发中共享代码目录、读取配置文件或输出日志等场景。
3. 宿主机上的目录文件必须事先存在
volume卷 volume 挂载到容器中。
1. 卷是 Docker 容器数据持久化首选机制,
2. 相比 绑定 bind 挂载有易备份迁移、可管理、跨平台、安全共享、可扩展功能等优势,
3. 且通常比直接在容器中写数据更好。
4. 当绑定挂载的卷的主机目录不存在时,Docker会在主机上为你自动创建这个目录。
tmpfs临时文件系统挂载,将数据存储在宿主机内存中,而不是磁盘上。
1. 适合于一些不需要持久化,且需要快速读写的临时数据。
  • –mount 挂载文件
    将前面 --volume 的例子换成 --mount 实现。

    docker run --rm \
    --mount type=bind,src=./hostname,dst=/etc/hostname \
    busybox cat /etc/hostname 
    
  • –mount 挂载目录
    将前面 --volume 的例子换成 --mount 实现。如果目标存在则覆盖。

    docker run --rm -it -p 80:80 \
    --mount type=bind,src=./html,dst=/usr/share/nginx/html \
    nginx ls /usr/share/nginx/html
    
  • –mount 只读挂载
    在容器中挂载点后加上,readonly 即为只读。现在进去写一下,保存就会看到只读警告了。

    docker run --rm -it \
    --mount type=bind,src=./hostname,dst=/etc/hostname,readonly \
    busybox sh
    

docker attach 进入运行中的容器

直接连接到正在运行的容器,查看或控制它的输出,就像在本地终端操作一样。

docker attach 容器名
直接退出脱离容器,并让其保持后台运行
exitCtrl + cCtrl + pCtrl + q

docker exec 在运行中的容器执行命令

格式:docker exec <容器名> <命令> [参数]

在运行的容器 bb 中执行命令 ls 参数 /

docker exec bb ls /

docker cp 复制文件

先开一个容器

docker run --name bb -dit \
--mount type=bind,src=./hostname,dst=/etc/hostname,readonly \
busybox sh
  • 宿主机 拷贝到 容器
    bb容器中的/etc/hostname 复制到当前目录下,并命名为 hostname001
    docker cp bb:/etc/hostname hostname001
    
  • 容器 拷贝到 宿主机
    将当前目录下的 test.txt 复制到 bb 容器中的/test/999.txt
    docker cp test.txt bb:/test/999.txt
    
    目录文件夹必须存在,如果不存在,可以先创建一下docker exec bb mkdir /test

docker logs 查看容器日志

实时查看容器的日志。初始 10 行

docker logs -f -n 10 容器名

网络命令 (Network Commands)

my_network 用于举例的网络名称

—————— 命 令 ——————说明示例
docker network ls列出网络docker network ls
docker network create创建网络docker network create my_network
docker network inspect显示网络的详细信息docker network inspect my_network
docker network connect连接容器到网络
(把一个容器添加到一个网络中,
它就可以和这个网络下的其他容器通信了)
docker network connect my_network my_container
docker network disconnect断开容器与网络连接docker network disconnect my_network my_container
docker network rm删除网络docker network rm my_network

docker network create 创建网络

格式:docker network create [选项] 网络名称

创建 bridge 网络

  1. 创建 bridge 网络时,-d bridge 作为默认网络驱动,可以省略。
  2. 所有加入 bridge 网络的容器都会被分配一个私有 IP 地址。
  3. 该网络支持容器间容器宿主机间及容器外部网络间的通信。
  4. 安装 Docker 默认创建的 docker0 不包含 DNS 解析服务,通常我们会自己创建一个来用。
  • 创建一个桥接网络
docker network create -d bridge my-bridge-network
  • 创建三台容器 bb1,bb2,bb3 ,并加入 my-bridge-network
docker run -dit --network my-bridge-network --name bb1 busybox
docker run -dit --network my-bridge-network --name bb2 busybox
docker run -dit --network my-bridge-network --name bb3 busybox
  • bb1 ping bb2bb3宿主外网
#!/bin/bash

container_name="bb1"
targets=("bb2" "bb3" "172.17.0.1" "www.baidu.com")

for target in "${targets[@]}"; do
	if docker exec $container_name ping -c1 -W1 $target &>/dev/null; then
        echo "$container_name ping $target: 成功"
    else
        echo "$container_name ping $target: 失败"
    fi
done

在这里插入图片描述

创建 None 网络

  1. 不使用任何网络栈。
  2. 容器将不会被分配 IP 地址,也不具备任何网络功能。
  3. 适用于不需要网络连接的容器或测试用途。

注意:用户不能自己创建 None 网络,运行容器时直接 --network none 即可。

创建两个容器网络设置为 none

docker run -dit --name bbn1 --network none busybox
docker run -dit --name bbn2 --network none busybox

两个容器互 ping 不通

docker exec bbn1 ping bbn2
ping: bad address 'bbn2'

docker exec bbn2 ping bbn1
ping: bad address 'bbn1'

创建 Host 网络

  1. 容器直接使用宿主机的网络。(就相当于它是宿主机上运行的一个程序)
  2. 容器共享宿主机的 IP 地址和端口。
  3. 适用于需要完全访问宿主机网络的应用程序。
  4. 可能会导致端口冲突等问题。

注意:用户不能自己创建 Host 网络,运行容器时直接 --network host 即可。

docker run -dit --name bbh1 --network host busybox
docker run -dit --name bbh2 --network host busybox

bbh1bbh2 ping 外网,就相当于我宿主机自己 ping 外网。

docker exec bbh1 ping -c3 www.baidu.com
docker exec bbh2 ping -c3 www.baidu.com

另外再看一下 bbh1bbh2ip addr 显示的和宿主机完全一样,因为就是同一个东西

docker exec bbh1 ip addr

* 创建 Overlay 网络

  1. 用于 Docker Swarm 模式下的多主机网络。
  2. 允许容器跨多个 Docker 守护进程进行通信。
  3. 提供分布式服务发现和负载均衡。
  4. 适合集群环境下容器间的通信。
docker network create -d overlay my-overlay-network

创建 Macvlan 网络

使用 macvlan 网络可以让容器直接通过宿主机的物理网卡与外界通信,提高了网络性能,并允许容器直接在网络中被识别。这对于需要高性能和直接访问的应用场景非常有用。

  • 工作原理
    1. MAC VLAN:技术允许在宿主机的物理网卡上创建一个或多个虚拟接口,每个接口都有一个独立的 MAC 地址。这些接口共享同一个物理网卡,但可以在不同的 VLAN 中。
    2. 容器网络:在 Docker 中使用 macvlan 网络时,Docker 会为每个加入该网络的容器分配一个 MAC 地址,并将其直接连接到宿主机的物理网卡上。

  • 优点
    1. 高性能:由于容器直接使用宿主机的物理网卡,避免了通过桥接网络带来的额外开销。
    2. 独立 IP 地址:容器可以拥有独立的 IP 地址,可以直接在网络中被识别。
    3. 直接通信:容器可以直接与外部网络通信,无需通过宿主机的网关或代理。

  • 使用场景
    1. 高性能网络应用:适用于需要高性能网络通信的应用程序。
    2. 直接访问:适用于需要直接访问容器的服务,例如在生产环境中直接暴露容器的服务给外部网络。

在两台主机上创建相同的 macvlan 网络,并运行容器,互 Ping

我正好在 WSL 中装了一台 CentOS7,一台CentOS8。接下来我要做如下步骤:

  1. 分别在 CentOS7,CentOS8 使用完全一样的参数,创建 macvlan 都叫 my-macvlan-network
  2. 在 CentOS7 运行一个容器 c1 加入 my-macvlan-network 网络,IP指定为 182.28.38.11
  3. 在 CentOS8 运行一个容器 c2 加入 my-macvlan-network 网络,IP指定为 182.28.38.12
  4. 两个容器互 ping

在创建 macvlan 前要先搞清楚一下我们的网络情况。

  1. 我的电脑上安装的是 Win11家庭版本,
    Win11 中装了 WSL
    WSL 中装了CentOS7CentOS8 子系统
  2. 查看网络信息
    2.1. Win11中执行 ipconfig 发现 vEthernet (WSL) 这里的 IP 就是 WSL 中所有子系统的网关
    2.2. 进入各子系统如 CentOS7、CentOS8 执行 ip route show | grep -i default | awk '{ print $3}' 可以验证。
  • CentOS7CentOS8 执行相样的操作,创建 my-macvlan-network
    注意: 避开当前环境已经存在的IP不然会造成冲突。

    docker network create \
      --driver macvlan \
      --subnet=182.28.38.0/24 \
      --gateway=182.28.38.1 \
      -o macvlan_mode=bridge  \
      -o parent=eth0 \
      my-macvlan-network
    
    • -d macvlan:指定网络驱动为 MAC VLAN。
    • --subnet=182.28.38.0/24:定义这个网络的子网为 182.28.38.0182.28.38.255
      这意味着这个子网中排除掉网络地址( 182.28.38.0)和广播地址(182.28.38.255),
      可用的 IP 地址范围是从 182.28.38.1182.28.38.254 数量为 254 个。
    • --gateway=182.28.38.1:指定这个网络的网关地址为 182.28.38.1。(网关又占一个,只剩253了)
    • -o parent=eth0:表示这个 MAC VLAN 网络所基于的物理网络接口是 eth0,即这个新创建的网络将通过 eth0 与外部网络进行通信。
      使用 ip link show 可以查看我们的物理网卡名子。通常是以 ethenpens开头。
      比如我这里宿主机的物理网卡名就叫 eth0
    • my-macvlan-network:为新创建的网络指定一个名称。
  • 然后,分别在 CentOS7CentOS8 运行容器并让其连接到 my-macvlan-network 网络:
    CentOS7 设定IP :182.28.38.11

    docker run -dit --name c1 --net=my-macvlan-network --ip=182.28.38.11 busybox
    

    CentOS8 设定IP :182.28.38.12

    docker run -dit --name c2 --net=my-macvlan-network --ip=182.28.38.12 busybox
    
  • 互 ping 验证
    c1 ping 182.28.38.11

    在这里插入图片描述
    c2 ping 182.28.38.10
    在这里插入图片描述

  • 实现宿主与容器间通信
    前面工作完成后发现,容器可以互通了,但是容器与宿主不通。

    1. 对创建 macvlan2 的命令稍加改造,(运行容器的命令不变)
      --aux-address='host=182.28.38.120' 这句直接给容器说,你用这个访问宿主。

      # 创建 Docker macvlan
      docker network create -d macvlan \
         --subnet=182.28.38.0/24 \
         --gateway=182.28.38.1 \
         --aux-address='host=182.28.38.120' \
         -o parent=eth0 \
         my-macvlan-network
      
    2. 接下来我们用 linux 命令创建一个 macvlan 取名 macvlan2

    3. 在上面两容器所在网段选个空闲 IP 比如 182.28.38.120 绑给 macvlan2

    4. 在宿主机上设置下路由,让 182.28.38.0182.28.38.255 都走 macvlan2

    5. 这样就宿主机就可以与容器通信了。

      # 创建另一个 macvlan
      sudo ip link add macvlan2 link eth0 type macvlan mode bridge \
      sudo ip addr add 182.28.38.120/32 dev macvlan2 \
      sudo ip link set macvlan2 up \
      sudo ip route add 182.28.38.0/24 dev macvlan2
      

      顺便附上卸载方法:先停掉,后删除

      sudo ip link set macvlan2 down
      sudo ip link del macvlan2
      

* 创建 IPvlan 网络

  1. 类似于 Macvlan,但在 IP 层而不是 MAC 层操作。
  2. 容器可以直接在三层网络中通信。
  3. 适用于需要高性能网络的应用。
  4. 需要宿主机支持 IPvlan。
docker network create -d ipvlan --ipvlan-mode=l2 --subnet=192.168.0.0/24 --gateway=192.168.0.1 my-ipvlan-network

docker network connect 连接容器到网络

格式:docker network connect [选项] <网络> <容器>

docker network connect my-bridge-network c1

卷命令 (Volume Commands)

my_volume 用于举例的卷名

命令说明示例
docker volume create创建卷docker volume create my_volume
如果不传卷名,系统会自动生成随机字符串作卷名。
docker volume ls列出卷docker volume ls
docker volume inspect显示卷的详细信息docker volume inspect my_volume
docker volume rm删除卷docker volume rm my_volume

参考资料

笑虾:WSL 下的 CentOS 装 Docker

Docker 命令行基础命令
官方例子

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

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

相关文章

Midjourney中秋特典-12张图附魔咒

第一张 魔咒 A Mid-Autumn Festival poster, a round bright moon, a Chinese-style pavilion with a scene of a reunion from Dream of the Red Chamber, a new Chinese style --ar 3:4 --v 6.1第二张 魔咒 The bright full moon hung in the night sky,clear in outline a…

【疑难杂症2024-005】docker-compose中设置容器的ip为固定ip后,服务无法启动

本文由Markdown语法编辑器编辑完成。 1.背景&#xff1a; 我们的产品是通过docker image的方式发布&#xff0c;并且编排在docker-compose.yml中发布。在同一个docker-compose.yml中的服务&#xff0c;相互之间&#xff0c;可以通过对方的服务名和端口&#xff0c;来直接访问…

动态规划算法---04.斐波那契数列模型_解码方法_C++

题目链接&#xff1a;91. 解码方法 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/decode-ways/description/ 一、题目解析 题目&#xff1a; 题目大意&#xff1a;从题目中我们可以知道&#xff0c;解码就是在字符串s中由‘1’到‘26’的字符可以转化…

echarts饼图让部分数据显示在图外,部分显示在图内

echarts饼图让部分数据显示在图外&#xff0c;部分显示在图内 var dataList [{ value: 10, name: 商户 },{ value: 20, name: 充电桩 },{ value: 30, name: 业主 } ] option {series: [{type: pie,radius: 70%,data: dataList,labelLine: {show: true,position: outside,len…

JavaSE:4、流程控制

1、代码块与作用域 变量的使用范围&#xff0c;仅限于其定义时所处的代码块&#xff0c;也就是他的作用域。 目前所说的变量均为局部变量 public class Main {public static void main(String [] argv){int a10;{int b10;System.out.println(a);System.out.println(b);}Sys…

计算机网络八股总结

这里写目录标题 网络模型划分&#xff08;五层和七层&#xff09;及每一层的功能五层网络模型七层网络模型&#xff08;OSI模型&#xff09; 三次握手和四次挥手具体过程及原因三次握手四次挥手 TCP/IP协议组成UDP协议与TCP/IP协议的区别Http协议相关知识网络地址&#xff0c;子…

前端——标签二(超链接)

标签二 超链接标签&#xff1a;a 超链接&#xff0c;实现页面间的跳转和数据传输 a标签的属性 href&#xff1a;跳转路径&#xff08;url&#xff09;必须具备&#xff0c;表示点击后会跳转到哪个页面 target&#xff1a;页面打开方式。默认是 _self 如果是 _blank则用新的…

[基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 02 配置 nodejs 淘宝镜像仓库

文章目录 为什么要配置淘宝镜像仓库呢如何查看镜像仓库如何配置镜像仓库 为什么要配置淘宝镜像仓库呢 主要是因为默认的镜像仓库是国外的&#xff0c;当我们使用 npm 安装依赖的时候会很慢或者失败&#xff0c;我们配置国内的镜像仓库这样就可以加速我们安装镜像的过程&#x…

突破瓶颈:Java并发编程的最佳实践与技巧,你了解了吗?

文章目录 1 什么是 Executor 和 ExecutorService &#xff1f;这两个接口有什么区别&#xff1f;2 java.util.concurrent 标准库中 ExecutorService 的可用实现是什么 &#xff1f;3 什么是 Java 内存模型&#xff08; JMM &#xff09;&#xff1f;描述下其目的和基本思想4 JM…

Dubbo精要

1、为什么需要 Dubbo&#xff1f; 分布式系统中的服务调用和协调问题&#xff1a;在分布式系统中&#xff0c;服务之间的相互依赖会导致复杂的通信和协调问题。Dubbo提供了高效的服务调用和自动注册、发现等功能&#xff0c;使得构建分布式应用程序更加容易。服务治理和服务调…

6 递归——509. 斐波那契数 ★

6 递归 509. 斐波那契数 斐波那契数列从0和1开始,后面的每一项数字都是前面两项数字的和。F(0) = 0,F(1) = 1,当n > 1时,F(n) = F(n − 1) + F(n − 2)。给定n,请计算 F(n)。 示例 1: 输入:n = 2 输出:1 解释:F(2) = F(1) + F(0) = 1 + 0 = 1 示例 2: 输入:n …

[000-01-008].第05节:OpenFeign特性-重试机制

我的后端学习大纲 SpringCloud学习大纲 1.1.重试机制的默认值&#xff1a; 1.重试机制默认是关闭的&#xff0c;给了默认值 1.2.测试重试机制的默认值&#xff1a; 1.3.开启Retryer功能&#xff1a; 1.修改配置文件YML的配置&#xff1a; 2.新增配置类&#xff1a; packa…

CentOs 入门必备基础知识详细讲解

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; CentOS&#xff08;Community ENTerprise Operating System&#xff09;是一个基于 Red Hat Enterprise Linux (RHEL) 源代码的开源操作系统&#xff0c;主要用于服务器和企业环境。下面是一个详细的入门知识…

JDBC数据库连接技术

JDBC数据库连接技术 基础篇 一、引言 1.1 数据的存储 我们在开发Java程序时&#xff0c;数据都是存储在内存中&#xff0c;属于临时存储&#xff0c;当程序停止或重启时&#xff0c;内存中的数据就丢失了&#xff01;我们为了解决数据的长期存储问题&#xff0c;有如下解决方…

【Prompt Enhancer】如何优化prompt的内容

背景 在使用LLM的时候&#xff0c;提示词的好坏对模型的输出质量影响很大&#xff0c;提示词又是一个复杂工程&#xff0c;要写出优秀的提示词&#xff0c;需要丰富的经验。正因如此&#xff0c;各类Agent平台都会有自己的提示词增强功能&#xff0c;帮助用户编写提示词。 最…

Linux驱动.之platform平台总线驱动框架(二),正点原子

第五十四章 platform设备驱动实验 我们在前面几章编写的设备驱动都非常的简单&#xff0c;都是对IO进行最简单的读写操作。像I2C、SPI、LCD等这些复杂外设的驱动就不能这么去写了&#xff0c;Linux系统要考虑到驱动的可重用性&#xff0c;因此提出了驱动的分离与分层这样的软件…

数据结构与算法-17高级数据结构_图论(迪杰斯特拉算法)

迪杰斯特拉算法 1 是什么&#xff1f; 迪杰斯特拉算法&#xff08;Dijkstra’s Algorithm&#xff09;&#xff0c;又称狄克斯特拉算法&#xff0c;是由荷兰计算机科学家埃德加狄克斯特拉&#xff08;Edsger Dijkstra&#xff09;于1959年提出的一种用于解决有权图中最短路径…

GPT-4与ChatGPT:人工智能对话的新时代【含国内可用gpt】

随着人工智能&#xff08;AI&#xff09;技术的不断突破&#xff0c;人与机器的交互方式正发生深刻的变革。在这股技术浪潮中&#xff0c;GPT-4和基于它的ChatGPT成为了令人瞩目的焦点&#xff0c;推动了对话式AI的快速发展。通过这些技术&#xff0c;我们不仅看到了AI在语言理…

【MySQL】MySQL和Workbench版本兼容问题

1、安装MySQL WorkBench 最新版本下载&#xff1a;https://dev.mysql.com/downloads/workbench/ 历史版本下载&#xff1a;https://downloads.mysql.com/archives/workbench/ 2、问题描述 本人在Windows下安装了一个旧版本的MySQL&#xff08;5.1&#xff09;&#xff0c;同…

全球NAND原厂闪存市场格局变化

根据市场研究机构TrendForce的最新跟踪报告&#xff0c;三星&#xff08;Samsung&#xff09;和SK海力士&#xff08;SK hynix-Solidigm&#xff09;在过去的一个季度中扩大了他们在NAND闪存市场的份额&#xff0c;这主要得益于抢占了铠侠&#xff08;Kioxia&#xff09;与西部…