Docker 镜像的使用

1.镜像的基本信息

[root@host1 ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
ubuntu        latest    802541663949   2 weeks ago   78.1MB
hello-world   latest    1b44b5a3e06a   4 weeks ago   10.1kB

执行 docker images 命令时加上 --no-trunc 选项会显示完整的镜像 ID

例如,查看上述 Ubuntu 镜像的完整信息如下

[root@host1 ~]# docker images ubuntu --no-trunc
REPOSITORY   TAG       IMAGE ID                                                                  CREATED       SIZE
ubuntu       latest    sha256:802541663949fbd5bbd8f35045af10005f51885164e798e2ee8d1dc39ed8888d   2 weeks ago   78.1MB

结果表明该镜像的完整 ID 如下

 sha256:802541663949fbd5bbd8f35045af10005f51885164e798e2ee8d1dc39ed8888d

执行 docker images 命令时加上 -digests 选项即可获取镜像摘要值

[root@host1 ~]# docker images ubuntu --digests
REPOSITORY   TAG       DIGEST                                                                    IMAGE ID       CREATED       SIZE
ubuntu       latest    sha256:9cbed754112939e914291337b5e554b07ad7c392491dba6daf25eef1332a22e8   802541663949   2 weeks ago   78.1MB

2.掌握镜像的基本操作

        1.拉取镜像(例如拉取16.04版本的 Ubuntu)

[root@host1 ~]# docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
58690f9b18fc: Pull complete 
b51569e7c507: Pull complete 
da8ef40b9eca: Pull complete 
fb15d46c38dc: Pull complete 
Digest: sha256:1f1a2d56de1d604801a9671f301190704c25d604a416f59e03c04f5c6ffee0d6
Status: Downloaded newer image for ubuntu:16.04
docker.io/library/ubuntu:16.04

        2.显示本地的镜像列表

[root@host1 ~]# docker images -f "before=ubuntu:18.04"
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       16.04     b6f507652425   4 years ago   135MB

        3.查看镜像的详细信息

[root@host1 ~]# docker inspect --format='{{.Architecture}}' ubuntu
amd64

        通过 JSON 格式的 RootFS 子节点查看镜像的根文件系统信息

[root@host1 ~]# docker inspect --format '{{json .RootFS}}' ubuntu
{"Type":"layers","Layers":["sha256:9d592720ced4a7a4ddf16adef8a126e4c8c49f22114de769343320b37674321e"]}

        4.查看镜像的历史信息

[root@host1 ~]# docker history ubuntu:16.04
IMAGE          CREATED       CREATED BY                                       SIZE      COMMENT
b6f507652425   4 years ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]             0B        
<missing>      4 years ago   /bin/sh -c mkdir -p /run/systemd && echo 'do…   7B        
<missing>      4 years ago   /bin/sh -c rm -rf /var/lib/apt/lists/*           0B        
<missing>      4 years ago   /bin/sh -c set -xe   && echo '#!/bin/sh' > /…   745B      
<missing>      4 years ago   /bin/sh -c #(nop) ADD file:11b425d4c08e81a3e…   135MB 

        5.查找镜像

[root@host1 ~]# docker search httpd    #学校无法访问外网,具体信息跳过

        6.删除本地镜像

[root@host1 ~]# docker rmi ubuntu:16.04
Untagged: ubuntu:16.04
Untagged: ubuntu@sha256:1f1a2d56de1d604801a9671f301190704c25d604a416f59e03c04f5c6ffee0d6
Deleted: sha256:b6f50765242581c887ff1acc2511fa2d885c52d8fb3ac8c4bba131fd86567f2e
Deleted: sha256:0214f4b057d78b44fd12702828152f67c0ce115f9346acc63acdf997cab7e7c8
Deleted: sha256:1b9d0485372c5562fa614d5b35766f6c442539bcee9825a6e90d1158c3299a61
Deleted: sha256:3c0f34be6eb98057c607b9080237cce0be0b86f52d51ba620dc018a3d421baea
Deleted: sha256:be96a3f634de79f523f07c7e4e0216c28af45eb5776e7a6238a2392f71e01069

3.验证镜像的分层结构

        1.建立项目目录,存放 Dockerfile 及其相关文件

[root@host1 ~]# mkdir -p ch02/img-layers && cd ch02/img-layers

        2.在项目目录中创建 app.py 文件,加入以下内容

[root@host1 img-layers]# vi app.py
[root@host1 img-layers]# cat app.py
#!/user/bin/python
print("Hello, World")

        3.在项目目录中创建 Dockerfile,加入以下内容

[root@host1 img-layers]# vi Dockerfile
[root@host1 img-layers]# cat Dockerfile
FROM ubuntu:16.04
COPY ./ /app
RUN apt-get -y update && apt-get install -y python
CMD python /app/app.py

        4.检验

[root@host1 img-layers]# ls
app.py  Dockerfile

        4.基于 Dockerfile 构建一个镜像

[root@host1 img-layers]# docker build -t="img-layers-test" .
[+] Building 276.6s (7/7) FINISHED                                                      docker:default=> [internal] load build definition from Dockerfile                                              0.0s=> => transferring dockerfile: 202B                                                              0.0s=> [internal] load metadata for docker.io/library/ubuntu:16.04                                   5.1s=> [internal] load .dockerignore                                                                 0.0s=> => transferring context: 2B                                                                   0.0s=> [internal] load build context                                                                 0.0s=> => transferring context: 338B                                                                 0.0s=> [1/3] FROM docker.io/library/ubuntu:16.04@sha256:1f1a2d56de1d604801a9671f301190704c25d604a41  9.2s=> => resolve docker.io/library/ubuntu:16.04@sha256:1f1a2d56de1d604801a9671f301190704c25d604a41  0.0s=> => sha256:58690f9b18fca6469a14da4e212c96849469f9b1be6661d2342a4bf01774aa50 46.50MB / 46.50MB  7.9s=> => sha256:b51569e7c50720acf6860327847fe342a1afbe148d24c529fb81df105e3eed01 857B / 857B        2.4s=> => sha256:da8ef40b9ecabc2679fe2419957220c0272a965c5cf7e0269fa1aeeb8c56f2e1 528B / 528B        0.8s=> => sha256:1f1a2d56de1d604801a9671f301190704c25d604a416f59e03c04f5c6ffee0d6 1.42kB / 1.42kB    0.0s=> => sha256:a3785f78ab8547ae2710c89e627783cfa7ee7824d3468cae6835c9f4eae23ff7 1.15kB / 1.15kB    0.0s=> => sha256:b6f50765242581c887ff1acc2511fa2d885c52d8fb3ac8c4bba131fd86567f2e 3.36kB / 3.36kB    0.0s=> => sha256:fb15d46c38dcd1ea0b1990006c3366ecd10c79d374f341687eb2cb23a2c8672e 170B / 170B        2.3s=> => extracting sha256:58690f9b18fca6469a14da4e212c96849469f9b1be6661d2342a4bf01774aa50         1.3s=> => extracting sha256:b51569e7c50720acf6860327847fe342a1afbe148d24c529fb81df105e3eed01         0.0s=> => extracting sha256:da8ef40b9ecabc2679fe2419957220c0272a965c5cf7e0269fa1aeeb8c56f2e1         0.0s=> => extracting sha256:fb15d46c38dcd1ea0b1990006c3366ecd10c79d374f341687eb2cb23a2c8672e         0.0s=> [2/3] COPY ./ /app                                                                            0.1s=> ERROR [3/3] RUN apt-get -y update && apt-get install -y python                              262.1s
------                                                                                                 > [3/3] RUN apt-get -y update && apt-get install -y python:                                           
2.137 Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]                                 
4.892 Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [106 kB]                         
6.192 Get:3 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [106 kB]                       
7.172 Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]                      
14.91 Get:5 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]
15.42 Get:6 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]
19.29 Get:7 http://security.ubuntu.com/ubuntu xenial-security InRelease [106 kB]
21.08 Get:8 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [1151 kB]
27.02 Get:9 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [15.9 kB]
27.06 Get:10 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [928 kB]
31.02 Get:11 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [8820 B]
36.69 Get:12 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]
36.91 Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [1608 kB]
38.82 Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [16.4 kB]
38.83 Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [1483 kB]
41.10 Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [25.0 kB]
41.10 Get:17 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [11.3 kB]
41.10 Get:18 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [12.9 kB]
41.16 Fetched 17.4 MB in 41s (424 kB/s)
41.16 Reading package lists...
41.64 Reading package lists...
42.21 Building dependency tree...
42.28 Reading state information...
42.34 The following additional packages will be installed:
42.34   file libexpat1 libffi6 libmagic1 libpython-stdlib libpython2.7-minimal
42.34   libpython2.7-stdlib libsqlite3-0 libssl1.0.0 mime-support python-minimal
42.34   python2.7 python2.7-minimal
42.34 Suggested packages:
42.34   python-doc python-tk python2.7-doc binutils binfmt-support
42.34 The following NEW packages will be installed:
42.34   file libexpat1 libffi6 libmagic1 libpython-stdlib libpython2.7-minimal
42.34   libpython2.7-stdlib libsqlite3-0 libssl1.0.0 mime-support python
42.34   python-minimal python2.7 python2.7-minimal
43.11 0 upgraded, 14 newly installed, 0 to remove and 2 not upgraded.
43.11 Need to get 5717 kB of archives.
43.11 After this operation, 25.7 MB of additional disk space will be used.
43.11 Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-minimal amd64 2.7.12-1ubuntu0~16.04.18 [338 kB]
55.69 Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python2.7-minimal amd64 2.7.12-1ubuntu0~16.04.18 [1260 kB]
65.18 Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-minimal amd64 2.7.12-1~16.04 [28.1 kB]
92.63 Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 mime-support all 3.59ubuntu1 [31.0 kB]
213.7 Err:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 mime-support all 3.59ubuntu1
213.7   Connection failed [IP: 91.189.91.81 80]
254.0 Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libexpat1 amd64 2.1.0-7ubuntu0.16.04.5 [71.5 kB]
255.3 Get:6 http://archive.ubuntu.com/ubuntu xenial/main amd64 libffi6 amd64 3.2.1-4 [17.8 kB]
255.7 Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsqlite3-0 amd64 3.11.0-1ubuntu1.5 [398 kB]
257.6 Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl1.0.0 amd64 1.0.2g-1ubuntu4.20 [1083 kB]
259.5 Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-stdlib amd64 2.7.12-1ubuntu0~16.04.18 [1883 kB]
260.7 Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python2.7 amd64 2.7.12-1ubuntu0~16.04.18 [224 kB]
261.0 Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython-stdlib amd64 2.7.12-1~16.04 [7768 B]
261.4 Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python amd64 2.7.12-1~16.04 [137 kB]
261.7 Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libmagic1 amd64 1:5.25-2ubuntu1.4 [216 kB]
262.1 Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 file amd64 1:5.25-2ubuntu1.4 [21.2 kB]
262.1 Fetched 5686 kB in 3min 39s (25.9 kB/s)
262.1 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/m/mime-support/mime-support_3.59ubuntu1_all.deb  Connection failed [IP: 91.189.91.81 80]
262.1 
262.1 E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
------1 warning found (use docker --debug to expand):- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 4)
Dockerfile:3
--------------------1 |     FROM ubuntu:16.042 |     COPY ./ /app3 | >>> RUN apt-get -y update && apt-get install -y python4 |     CMD python /app/app.py5 |     
--------------------
ERROR: failed to build: failed to solve: process "/bin/sh -c apt-get -y update && apt-get install -y python" did not complete successfully: exit code: 100

        报错修改:

        从构建日志来看,核心错误是 Ubuntu 16.04 镜像的软件源连接失败(无法下载 mime-support 包),且存在一个 CMD 命令格式的警告。从构建日志来看,核心错误是 Ubuntu 16.04 镜像的软件源连接失败(无法下载 mime-support 包),且存在一个 CMD 命令格式的警告

        

        一、错误原因分析

  1. Ubuntu 16.04 已停止官方支持(EOL)
    Ubuntu 16.04 早在 2021 年就结束了长期支持,其默认软件源(archive.ubuntu.com)不再维护,导致 apt-get 下载包时频繁失败(连接超时或拒绝),这是本次构建失败的根本原因。

  2. CMD 命令格式警告
    Docker 建议 CMD 使用 JSON 数组格式(而非字符串格式),避免与 OS 信号处理相关的意外问题(日志中 JSONArgsRecommended 警告)。   

  3. 二、解决方案:修改 Dockerfile直接使用官方 Python 镜像(更简洁)

  4. 修改后的 Dockerfile 内容:

  5. [root@host1 img-layers]# vi Dockerfile
    [root@host1 img-layers]# cat Dockerfile
    FROM python:3.9-slim
    WORKDIR /app
    COPY ./ /app
    CMD ["python", "/app/app.py"]

    三、重新构建并测试

  6. 1.清理之前的构建缓存(可选,避免旧镜像干扰)

    1. [root@host1 img-layers]# docker builder prune -f
      IDRECLAIMABLESIZELAST ACCESSED
      zlm34izyjiinlnjyjdkduu8sx*              true 105B      3 minutes ago
      23890v1vbf75tfjlrr7nycue2*              true 0B        3 minutes ago
      taqlvmzw5ty0ju3xxlgadqiw2*              true 146B      3 minutes ago
      esiimfsl59rnov42lqy9rnlet               true 146B      3 minutes ago
      z91huwmp1ndhf13s7rozh90uk               true 0B        3 minutes ago
      enk8gcxrzj3j0n0c10hyp24z0               true 0B        7 minutes ago
      svngceqpst73s4n5aq62eonba               true 0B        7 minutes ago
      v6ex3r460c17eko42w83xsbkt               true 0B        7 minutes ago
      Total:397B

      2.重新构建镜像

      [root@host1 img-layers]# docker build -t="img-layers-test" .
      [+] Building 19.0s (8/8) FINISHED                                                       docker:default=> [internal] load build definition from Dockerfile                                              0.0s=> => transferring dockerfile: 174B                                                              0.0s=> [internal] load metadata for docker.io/library/python:3.9-slim                                4.0s=> [internal] load .dockerignore                                                                 0.0s=> => transferring context: 2B                                                                   0.0s=> [1/3] FROM docker.io/library/python:3.9-slim@sha256:914169c7c8398b1b90c0b0ff921c8027445e39d7  9.7s=> => resolve docker.io/library/python:3.9-slim@sha256:914169c7c8398b1b90c0b0ff921c8027445e39d7  0.0s=> => sha256:914169c7c8398b1b90c0b0ff921c8027445e39d7c25dc440337e56ce0f2566e6 10.36kB / 10.36kB  0.0s=> => sha256:213766eae7e1ad5da6140428e7f15db89f2c83caf906cc06fc9c5c8a0028e3b6 1.74kB / 1.74kB    0.0s=> => sha256:28f8802246faa922c08dd76e3ec467e3cb4278af72e99e1afa2f68dfb9ea991d 5.30kB / 5.30kB    0.0s=> => sha256:396b1da7636e2dcd10565cb4f2f952cbb4a8a38b58d3b86a2cacb172fb70117c 29.77MB / 29.77MB  8.3s=> => sha256:0219e1e5e6ef3ef9d91f78826576a112b1c20622c10c294a4a105811454d1cb1 1.29MB / 1.29MB    1.3s=> => sha256:5ec99fe17015e703c289d110b020e4e362d5b425be957d68bfb400d56d83f234 13.37MB / 13.37MB  4.8s=> => sha256:ea3499df304f0a84e9f076a05f0cfe2a64d8fcb884894ce682df9204c6a18a91 249B / 249B        2.1s=> => extracting sha256:396b1da7636e2dcd10565cb4f2f952cbb4a8a38b58d3b86a2cacb172fb70117c         0.8s=> => extracting sha256:0219e1e5e6ef3ef9d91f78826576a112b1c20622c10c294a4a105811454d1cb1         0.1s=> => extracting sha256:5ec99fe17015e703c289d110b020e4e362d5b425be957d68bfb400d56d83f234         0.5s=> => extracting sha256:ea3499df304f0a84e9f076a05f0cfe2a64d8fcb884894ce682df9204c6a18a91         0.0s=> [internal] load build context                                                                 0.0s=> => transferring context: 310B                                                                 0.0s=> [2/3] WORKDIR /app                                                                            0.1s=> [3/3] COPY ./ /app                                                                            5.2s=> exporting to image                                                                            0.0s=> => exporting layers                                                                           0.0s=> => writing image sha256:f3993039c06a09804164873d3c78a4d6695fbc7e140e755ea1875cd191a4ec25      0.0s=> => naming to docker.io/library/img-layers-test 

      3.运行镜像验证结果

      [root@host1 img-layers]# docker run img-layers-test
      Hello, World

                4.查看该镜像的分层信息

[root@host1 img-layers]# docker history img-layers-test
IMAGE          CREATED          CREATED BY                                       SIZE      COMMENT
f3993039c06a   10 minutes ago   CMD ["python" "/app/app.py"]                     0B        buildkit.dockerfile.v0
<missing>      10 minutes ago   COPY ./ /app # buildkit                          118B      buildkit.dockerfile.v0
<missing>      10 minutes ago   WORKDIR /app                                     0B        buildkit.dockerfile.v0
<missing>      4 weeks ago      CMD ["python3"]                                  0B        buildkit.dockerfile.v0
<missing>      4 weeks ago      RUN /bin/sh -c set -eux;  for src in idle3 p…   36B       buildkit.dockerfile.v0
<missing>      4 weeks ago      RUN /bin/sh -c set -eux;   savedAptMark="$(a…   38.1MB    buildkit.dockerfile.v0
<missing>      4 weeks ago      ENV PYTHON_SHA256=61a42919e13d539f7673cf11d1…   0B        buildkit.dockerfile.v0
<missing>      4 weeks ago      ENV PYTHON_VERSION=3.9.23                        0B        buildkit.dockerfile.v0
<missing>      4 weeks ago      ENV GPG_KEY=E3FF2839C048B25C084DEBE9B26995E3…   0B        buildkit.dockerfile.v0
<missing>      4 weeks ago      RUN /bin/sh -c set -eux;  apt-get update;  a…   3.8MB     buildkit.dockerfile.v0
<missing>      4 weeks ago      ENV LANG=C.UTF-8                                 0B        buildkit.dockerfile.v0
<missing>      4 weeks ago      ENV PATH=/usr/local/bin:/usr/local/sbin:/usr…   0B        buildkit.dockerfile.v0
<missing>      4 weeks ago      # debian.sh --arch 'amd64' out/ 'trixie' '@1…   78.6MB    debuerreotype 0.15

        至此,该镜像的分层结构及构建方式就非常清楚明了了。

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

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

相关文章

网络编程;套接字;TCP通讯;UDP通讯;0909

思维导图TCP服务器端和客户端通讯服务器端 代码#include<myhead.h> #define SER_IP "192.168.109.12"//我的虚拟机的ip #define SER_PORT 8888 int main() {//1.创建一个用于连接的套接字文件描述符int sfd socket(AF_INET,SOCK_STREAM,0);if(sfd-1){perror(&…

贪心算法应用:柔性制造系统(FMS)刀具分配问题详解

Java中的贪心算法应用&#xff1a;柔性制造系统(FMS)刀具分配问题详解 1. 问题背景与定义 柔性制造系统(Flexible Manufacturing System, FMS)是现代智能制造中的关键组成部分&#xff0c;它能够灵活地适应不同产品的生产需求。在FMS中&#xff0c;刀具分配是一个核心优化问题&…

不止是DELETE:MySQL多表关联删除的JOIN语法实战详解

MySQL 的 ​​DELETE​​ 语句用于从数据库表中删除记录。这是一项非常强大且危险的操作&#xff0c;因为一旦执行&#xff0c;数据通常无法恢复。理解其语法和安全实践至关重要。以下是 MySQL 删除语句的详细指南。一、 核心语法&#xff1a;DELETE​​DELETE​​ 语句用于删除…

ubuntu 系統使用過程中黑屏問題分析

背景&#xff1a; 工欲善其事&#xff0c;必先利其器。作为程序员&#xff0c;想要得到更好的发展&#xff0c;遇到问题直接baidu, google 虽然可以得到一些参考或者答案&#xff0c;但是也会降低自己的思考能力&#xff0c;本文以ubuntu 使用过程中黑屏这一问题为背景&#x…

Redis(45)哨兵模式与集群模式有何区别?

Redis 提供了两种高可用性解决方案&#xff1a;哨兵模式和集群模式。它们各自有不同的特点和适用场景。以下是详细的对比和结合代码的示例&#xff1a; 哨兵模式&#xff08;Sentinel&#xff09; 特点高可用性&#xff1a; Sentinel 通过监控、通知、故障转移等功能&#xff0…

微信小程序如何进行分包处理?

目录 分包是什么&#xff1f; 为什么要分包&#xff1f; 分包前后结构对比 具体操作步骤 第 1 步&#xff1a;规划分包结构 第 2 步&#xff1a;修改 app.json 进行配置 第 3 步&#xff1a;创建分包目录并移动文件 第 4 步&#xff1a;处理组件和工具函数的引用 第 5…

Go语言极速入门与精要指南从零到精通的系统化学习路径

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 持续学习&#xff0c;不断…

git 切换仓库后清理分支缓存

我明白了&#xff0c;从您的截图可以看到远程仓库中有 feature/v1.4_20250903 分支&#xff0c;但本地 git branch -r 看不到&#xff0c;这是因为之前更换过仓库地址后需要重新获取远程仓库的所有信息。让我们执行以下步骤来解决这个问题&#xff1a; 首先执行 git fetch --al…

考研倒计时101天---路由选择协议

路由选择协议&#xff1a;RIP 与 OSPFRIP 协议&#xff08;基于距离向量算法&#xff09;RIP&#xff08;Routing Information Protocol&#xff09;是一种内部网关协议&#xff08;IGP&#xff09;&#xff0c;采用距离向量算法进行路由选择。其主要特点如下&#xff1a;工作机…

「类 vs 实例」对比 ,「类 - 原型 - 实例」的关系

坚持的本身就是意义 目录直观类比类 (Class) vs 实例 (Instance)对比表示例代码类 - 原型 - 实例关系图解释&#xff1a;类 (class Person)原型 (Person.prototype)实例 (new Person(...))总结&#xff1a;直观类比 类&#xff08;Class&#xff09; 图纸 / 模板实例&#xf…

第一课、Cocos Creator 3.8 安装与配置

介绍说明 本文主要介绍在windows系统中&#xff0c;安装开发Cocos使用的软件工具&#xff0c;主要包含&#xff1a;安装CocosDashboard控制面板、CocosCreator3.8编辑器和脚本编辑器 VS Code 。 一、Cocos Dashboard 的安装 说明&#xff1a;Cocos Dashboard 主要作用是能够同…

从航空FACE的一个落地方案漫谈汽车HPC软件架构的思维转变(2/3)FACE的“段”同Autosar的“层”概念区别探索

文章目录PART THREE&#xff1a;段和层的概念比较一、“段”更强调“功能闭环责任归属”&#xff0c;而非“单纯的层级堆叠”二、“段”规避“层”的“刚性依赖陷阱”&#xff0c;适配航空系统的“灵活组合需求”三、“段”贴合航空工业的“工程化语言习惯”&#xff0c;降低跨…

金融量化指标--6InformationRatio信息比率

InformationRatio信息比率计算公式添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;一、信息比率&#xff08;IR&#xff09;是什么&#xff1f;核心概念&#xff1a;信息比率衡量的是投资组合经理相对于某个基准指数&#xff08;Benchmark&#xff09;&…

Java全栈开发面试实录:从基础到微服务的实战经验分享

Java全栈开发面试实录&#xff1a;从基础到微服务的实战经验分享 一、初识面试场景 我叫李明&#xff0c;28岁&#xff0c;毕业于复旦大学计算机科学与技术专业&#xff0c;硕士学历。在互联网行业已经有5年的工作经验&#xff0c;先后在两家中型互联网公司担任Java全栈开发工程…

【51单片机】【protues仿真】基于51单片机公交报站系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 主要功能如下&#xff1a; 1、LCD12864显示时间、日期、公交车车站、温度等 2、按键设置时间&#xff0c;显示公交车信息 3、串口播报相应站点信息 4、按键控制上行、下行、手动播…

第1节-PostgreSQL入门-从表中查询数据

摘要&#xff1a;在本教程中,你将学习如何使用 PostgreSQL 的 SELECT 语句从表中检索数据。 SELECT 语句 要从表中查询数据,需使用 PostgreSQL 的 SELECT 语句。 以下是 SELECT 语句的基本语法: SELECT column1, column2, ... FROM table_name;在这种语法中: 首先,在 SELECT 关…

【C++进阶】---- map和set的使用

1.序列式容器和关联式容器 前⾯我们已经接触过STL中的部分容器如&#xff1a;string、vector、list、deque、array、forward_list等&#xff0c;这些容器统称为序列式容器&#xff0c;因为逻辑结构为线性序列的数据结构&#xff0c;两个位置存储的值之间⼀般没有紧密的关联关系…

430章:Python Web爬虫入门:使用Requests和BeautifulSoup

在软件交付日益高频、用户需求快速迭代的今天&#xff0c;版本发布流程的规范性直接决定了团队的交付效率、产品质量和用户满意度。然而&#xff0c;许多团队仍面临以下痛点&#xff1a;发布混乱&#xff1a;分支管理随意&#xff0c;代码冲突频发&#xff1b;质量失控&#xf…

代码随想录第七天|● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 18.四数之和

本文所有题目链接/文章讲解/视频讲解&#xff1a;https://programmercarl.com/0454.%E5%9B%9B%E6%95%B0%E7%9B%B8%E5%8A%A0II.html 454.四数相加II 有四个数组&#xff0c;如果要遍历则时间复杂度太大 可以选择分组&#xff0c;a和b一组&#xff0c;c和d一组 这样就可以等同于…

Vue3源码reactivity响应式篇之computed计算属性

概述 vue3中&#xff0c;computed函数用于表示计算属性&#xff0c;有惰性求值、响应式追踪依赖的特点。本文将介绍computed的实现原理以及其机制细节。 源码解析 computed计算属性和computed方法、ComputedRefImpl类以及refreshComputed方法有关。 computed方法 computed暴露给…