開悟篇Docker從零到實戰一篇文章搞定

目錄

一:概述

1:why docker

2:Docker是什么?

3:Docker核心概念

二:初步體驗

1:Docker核心架構圖

2:準備工作

1:服務器

2:Docker安裝

3:阿里云docker安裝

4:鏡像加速

 三:Docker命令和幫助文檔的使用       

  1:幫助文檔

2:鏡像的基本操作

1:查看本地下載的所有鏡像

2:搜索鏡像

3:下載鏡像

4:刪除鏡像

5:查看鏡像信息

6:組合使用刪除鏡像

3:容器基本操作

1:運行容器

1:直接運行

2:映射宿主機和容器端口

3:不以前臺shell終端的方式運行

4:啟動容器指定名稱

2:導入一個鏡像

3:查看容器信息

        1:展示運行的docker容器

 2:列出所有容器

3:列出所有退出狀態的容器

4:停止|關閉|重啟|立即關閉容器

5:刪除容器

  6:查看容器運行日志

7:查看容器內的進程

8:通過宿主機與容器內部進行交互

9:退出容器

10:文件交互

11:查看容器內進程

12:查看容器內細節命令

13:數據卷指令

14:將容器打成一個新的鏡像

四:鏡像原理

五:運行MySQL容器

1:下載MySQL鏡像

2:啟動鏡像

 3:進入MYSQL容器的Bash

4:創建表

5:驗證數據卷 完成了數據同步

6:docker運行MySQL的容器數據備份

六:運行Redis

七:運行ES

八:高級網絡

        1:Docker容器之間通訊的必要性。

2:同一物理機上基于Docker引擎進行通訊的基本原理

3:總結

4:自定義網橋實現一組容器的通訊

1:創建自定義網橋

2:運行多個容器在指定網絡中

九:高級數據卷

        1:數據卷是怎么回事

        2:數據卷基本原理

        1:查看docker維護的數據卷

        2:查看數據卷詳細內容

        3:刪除一個數據卷

        4:直接創建一個數據卷

十:Dockerfile

1:Dockerfile

2:Dockerfile構建流程

3:Dockerfile指令

1:FROM

2:RUN

3:EXPOSE       

4:WORKDIR

5:ADD

6:COPY

7:ENV

8:VOLUMN

9:CMD

10:ENTRYPOINT

十一:Dockerfile自定義項目鏡像

1:創建SpringBoot系項目

2:開發簡單功能,鏈接數據庫

3:測試項目代碼

4:打包項目代碼jar

5:編寫Dockerfile生成鏡像

        6:運行Docker鏡像

7:運行一個MySQL容器

8:搭建共享網絡

9:最終結果展示

十二:Docker  Compose

1:docker compose引入

2:簡介

3:如何使用

4:Docker Compose安裝

5:docker-compose第一個案例

1:創建一個空項目

2:在ems下創建一個模板文件

3:如何啟動docker-compose

6:docker-compose模板指令

1:build指令

2:覆蓋命令command

3:container_name

4:depends_on

5:environment

6:evn-file指定文件

7:healthcheck

8:image

9:networks

10:volumes

11:restart

7:docker-compose常用命令

1:up

2:down

3:docker exec

4:ps

5:restart

6:rm

7:top

8:unpause/pause

9:logs

十三:Docker可視化工具

1:簡介

2:安裝并啟用

3:安裝結果


一:概述

1:why docker

        屏蔽環境差異。解決應用部署的不方便等。降低微服務部署時間。聚焦核心問題。

        實際公司中打包基本上都不是直接用docker,而是使用k8s。不了解docker更不容易了解k8s。

2:Docker是什么?

        VM虛擬機虛擬出來一套計算機,有虛擬的硬件設備和操作系統。Docker是一個應用容器引擎。一個容器可以理解為一個輕量級的虛擬機(只保留了操作系統必要的部分)

3:Docker核心概念

       docker引擎就像是Java的虛擬機,必須有這個東西,才能運行docker。

鏡像 image

一個鏡像代表一個軟件。相當于一個容器的模板   

可以類比:我們安裝盜版操作系統鏡像   鏡像可以創建容器。MySQL鏡像,Redis鏡像。MQ鏡像。

特點:只讀,不能修改

容器:一個輕量級的虛擬機。一個鏡像運行一次就是一個容器。

鏡像倉庫:存放鏡像的倉庫:官方的鏡像倉庫:https://hub.docker.com/

本地倉庫:用于存儲在使用docker過程中相關鏡像。都是從互聯網倉庫下載的。

二:初步體驗

        gitlab是一個遠程代碼倉庫。公司一般有自己的私有的gitlab。

1:Docker核心架構圖

        阿里云鏡像倉庫:直接把國外的遠程倉庫,同步了一份。

2:準備工作

1:服務器

        首先需要準備一個linux環境,我們搞一個vm的虛擬機。或者購買云服務器。當前使用centos7并且要求4GB以上內存。

2:Docker安裝

        官網的安裝步驟

        卸載舊的docker

sudo dnf remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

         安裝yum工具

sudo yum install -y yum-utils

        設置倉庫連接

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

         安裝docker引擎

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

        啟動docker引擎

將docker加入開機自啟動的服務
sudo systemctl enable --now docker啟動dockersudo systemctl start docker

         驗證是否安裝成功

sudo docker run hello-world

        docker容器引擎,管理容器的,容器是鏡像創建的。他會去鏡像倉庫拉去helloworld的鏡像。容器會打印helloworld。

        停止docker

sudo systemctl stop docker

        查看docker狀態

systemctl status docker 

        推薦將當前用戶加入docker組。

        Linux當中有一個用戶組的概念。root用戶默認在root組,當前用戶最好屬于docker組,所以,我們先創建一個組,在將當前用戶加入docker組。

        

sudo groupadd docker
usermod -aG docker $User
docker run hello-world

3:阿里云docker安裝

阿里云提供了一個安裝腳本,可以適配多種環境的安裝。

通用方式安裝:根據Linux發行版本無關。

獲取該腳本:crul -fsSl get.docker.com -o get-docker.sh

執行腳本通過腳本下載,設置阿里云鏡像下載:sudo sh get-docker.sh --mirror Aliyun

4:鏡像加速

        阿里為每一個開發者都提供了唯一的鏡像加速:

        登錄阿里云--控制臺--檢索鏡像加速服務--阿里云提供的鏡像加速。

        默認鏡像倉庫是在國外,我們需要配置鏡像加速。現在配置阿里云的鏡像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.xuanyuan.me"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

        檢測配置是否成功

[cuillei@bogon ~]$ docker info
Client: Docker Engine - CommunityVersion:    28.3.3Context:    defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version:  v0.26.1Path:     /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version:  v2.39.1Path:     /usr/libexec/docker/cli-plugins/docker-composeServer:Containers: 2Running: 0Paused: 0Stopped: 2Images: 3Server Version: 28.3.3Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueUsing metacopy: falseNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: systemdCgroup Version: 2Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local splunk syslogCDI spec directories:/etc/cdi/var/run/cdiSwarm: inactiveRuntimes: io.containerd.runc.v2 runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 05044ec0a9a75232cad458027ca83437aae3f4darunc version: v1.2.5-0-g59923efinit version: de40ad0Security Options:seccompProfile: builtincgroupnsKernel Version: 5.14.0-601.el9.x86_64Operating System: CentOS Stream 9OSType: linuxArchitecture: x86_64CPUs: 4Total Memory: 7.47GiBName: bogonID: 24d29ae4-9fbf-4edb-ac49-7126990a6c08Docker Root Dir: /var/lib/dockerDebug Mode: falseExperimental: falseInsecure Registries:::1/128127.0.0.0/8Registry Mirrors:https://lzsuuf9m.mirror.aliyuncs.com/Live Restore Enabled: false

        客戶端引擎提供命令,服務端引擎運行服務。

        QQ也有自己的客戶端和服務端。

        到這Docker已經安裝成功并且成功啟用了。

 三:Docker命令和幫助文檔的使用       

  1:幫助文檔

docker --help       這個是大致的命令(大而全)
docker ps --help    查看ps命令的詳細用法

        或者訪問官網地址查看文檔

https://docs.docker.com/engine.reference/commandline/images/

2:鏡像的基本操作

        鏡像:image

docker version查看客戶端引擎和server端的版本的信息。

docker info 查看docker詳細信息。

docker --help 查看幫助信息

1:查看本地下載的所有鏡像

docker iamge ls
或者
docker images

2:搜索鏡像

        直接訪問鏡像地址,通過頁面去看,一般都這么使用。

docker search mysql

3:下載鏡像

        [非必寫]如果不寫就從官網下載,如果不寫標簽就拿最新的標簽。

dcoker pull [鏡像倉庫地址/] 鏡像名[:標簽]
docker pull 鏡像名    會自動拉去最新鏡像
docker pull 鏡像名:latest

        舉例說明 

[root@bogon ~]# docker pull alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/mysql_optimized:20240221-8.0.32-2.3.0
20240221-8.0.32-2.3.0: Pulling from alinux3/mysql_optimized
Digest: sha256:47244750f28e6caf9fc91df2a945d75fa4b6f2be669ece643928591e833640b7
Status: Image is up to date for alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/mysql_optimized:20240221-8.0.32-2.3.0
alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/mysql_optimized:20240221-8.0.32-2.3.0

4:刪除鏡像

docker image rm 鏡像名:tag
docker image rm 鏡像IDrm的必須得是沒有運行過的鏡像。docker image rm -f 鏡像名:tag
docker image rm -f 進項ID強制刪除,會把鏡像給刪除掉。

5:查看鏡像信息

        查看所有下載的鏡像。

[root@bogon ~]# docker images
REPOSITORY                                                                           TAG                     IMAGE ID       CREATED         SIZE
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/spark                      latest                  b774fd1e2551   17 months ago   617MB
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/spark                      3                       0896f5fbc416   17 months ago   617MB
alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/mysql_optimized   20240221-8.0.32-2.3.0   07cddd322c54   18 months ago   899MB

repository:倉庫地址

tag:標簽

image Id:鏡像唯一標

        查看鏡像的id

[root@bogon ~]# docker images --help
Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]List imagesAliases:docker image ls, docker image list, docker imagesOptions:-a, --all             Show all images (default hides intermediate images)--digests         Show digests-f, --filter filter   Filter output based on conditions provided--format string   Format output using a custom template:'table':            Print output in table format with column headers (default)'table TEMPLATE':   Print output in table format using the given Go template'json':             Print in JSON format'TEMPLATE':         Print output using the given Go template.Refer to https://docs.docker.com/go/formatting/ for more information about formatting output with templates--no-trunc        Don't truncate output-q, --quiet           Only show image IDs--tree            List multi-platform images as a tree (EXPERIMENTAL)
[root@bogon ~]# docker images -q
b774fd1e2551
0896f5fbc416
07cddd322c54
[root@bogon ~]# 

        查看所有鏡像的鏡像id

[root@bogon ~]# docker images -a -q
b774fd1e2551
0896f5fbc416
07cddd322c54
[root@bogon ~]# docker images -aq
b774fd1e2551
0896f5fbc416
07cddd322c54
[root@bogon ~]# 

        列出所有鏡像名字為mysql的鏡像id

docker images  --filter=reference='busy*:*libc'
docker images  --filter=reference=mysql

6:組合使用刪除鏡像

[root@localhost /]# docker image rm -f $(docker image ls redis -q)
Untagged: redis:latest
Untagged: redis@sha256:b0efb06f6b4d8c1e2fd1b7c1e89e178d787b432b7b09286b4e7ea3dcdbac777a
Deleted: sha256:2f21f6e6fe03146ad470d4d98839e09d0fe91ed706320d970f9e749f5a3067bc
Deleted: sha256:75ef83067bb216d924be347737cdb1eb070e2260e98e8b5e3525eeb995b4c884
Deleted: sha256:180ef53c584c69b4dfb83b05d42c686c1ed86f108eb116f67ad8d7571a123f18
Deleted: sha256:b7610a1994c4493f5c5ac846b6d6a837467bcb733679c1e7214bcd30eee3752a
Deleted: sha256:f0603094ff40fa7b5317b275dd3e5504042976d5b603f10034370351729859c7
Deleted: sha256:fcd63cd28f76d69c90b16fc090ed4a9426593d83bba8952841d36a992f473a45
Deleted: sha256:15e9161d29cc235e8f8693ddeafc94d9b03ed88ca420e9e65b632c01bf2f8cef
[root@localhost /]# 

3:容器基本操作

        容器的相關操作。

1:運行容器

1:直接運行
docker run 鏡像名:tag
docker run 鏡像ID
docker run 倉庫地址/鏡像名:tag
[root@localhost /]# docker run --ulimit nofile=65536:65536 -m 4g tomcat:9.0-jre11
Unable to find image 'tomcat:9.0-jre11' locally
9.0-jre11: Pulling from library/tomcat
32f112e3802c: Pull complete 
ebe18f308a67: Pull complete 
37221a9ff962: Pull complete 
717c0d286ea2: Pull complete 
3284fba73e3e: Pull complete 
be4d776a2aa1: Pull complete 
4f4fb700ef54: Pull complete 
c178adfbd8af: Pull complete 
0a753fd26410: Pull complete 
Digest: sha256:9fd04e8a3a44492a0637dae2f437e6cfe532dd162e9f26a05411cf03cc1990bf
Status: Downloaded newer image for tomcat:9.0-jre11
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
12-Aug-2025 13:31:45.447 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.108
12-Aug-2025 13:31:45.450 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Jul 31 2025 18:19:48 UTC
12-Aug-2025 13:31:45.450 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.108.0
12-Aug-2025 13:31:45.450 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
12-Aug-2025 13:31:45.450 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            5.14.0-601.el9.x86_64
12-Aug-2025 13:31:45.450 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
12-Aug-2025 13:31:45.451 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /opt/java/openjdk
12-Aug-2025 13:31:45.451 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.28+6
12-Aug-2025 13:31:45.451 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Eclipse Adoptium
12-Aug-2025 13:31:45.451 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
12-Aug-2025 13:31:45.451 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
12-Aug-2025 13:31:45.459 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
12-Aug-2025 13:31:45.459 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
12-Aug-2025 13:31:45.459 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
12-Aug-2025 13:31:45.460 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
12-Aug-2025 13:31:45.461 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
12-Aug-2025 13:31:45.461 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
12-Aug-2025 13:31:45.461 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
12-Aug-2025 13:31:45.461 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
12-Aug-2025 13:31:45.469 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.2].
12-Aug-2025 13:31:45.469 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
12-Aug-2025 13:31:45.469 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
12-Aug-2025 13:31:45.472 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
12-Aug-2025 13:31:45.653 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
12-Aug-2025 13:31:45.669 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [366] milliseconds
12-Aug-2025 13:31:45.707 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
12-Aug-2025 13:31:45.707 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.108]
12-Aug-2025 13:31:45.718 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
12-Aug-2025 13:31:45.731 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [61] milliseconds

        容器ID,基于那個image創建,容器內執行程序的命令,容器創建時間,當前狀態(up,dwon),容器內服務監聽的端口,容器的名字。

        這樣運行一個容器沒有任何意義,因為容器與當前機器沒有進行交互。容器與容器之間也是隔離的。

        我們想在希望8080可以直接訪問容器的8080接口,這個時候就需要映射宿主機端口和容器端口,這樣訪問宿主機端口的時候,就會直接將宿主機端口內容轉向容器端口。

docker run -p 8080:8080 tomcat:9.0jre11啟動 將系統的8080端口:專項 容器內服務監聽的8080端口再起一個窗口
docker run -p 8081:8080 tomcat:9.0jre11
2:映射宿主機和容器端口
[root@localhost ~]# docker run -p 8080:8080 tomcat:9.0-jre11
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
12-Aug-2025 13:58:54.745 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.108
12-Aug-2025 13:58:54.747 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Jul 31 2025 18:19:48 UTC
12-Aug-2025 13:58:54.747 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.108.0
12-Aug-2025 13:58:54.747 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
12-Aug-2025 13:58:54.747 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            5.14.0-601.el9.x86_64
12-Aug-2025 13:58:54.747 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
12-Aug-2025 13:58:54.747 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /opt/java/openjdk
12-Aug-2025 13:58:54.747 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.28+6
12-Aug-2025 13:58:54.748 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Eclipse Adoptium
12-Aug-2025 13:58:54.748 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
12-Aug-2025 13:58:54.748 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
12-Aug-2025 13:58:54.763 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
12-Aug-2025 13:58:54.763 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
12-Aug-2025 13:58:54.763 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
12-Aug-2025 13:58:54.763 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.io.useCanonCaches=false
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
12-Aug-2025 13:58:54.764 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
12-Aug-2025 13:58:54.769 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.2].
12-Aug-2025 13:58:54.769 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
12-Aug-2025 13:58:54.769 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
12-Aug-2025 13:58:54.773 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.13 30 Jan 2024]
12-Aug-2025 13:58:54.966 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
12-Aug-2025 13:58:54.983 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [402] milliseconds
12-Aug-2025 13:58:55.035 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
12-Aug-2025 13:58:55.036 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.108]
12-Aug-2025 13:58:55.048 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
12-Aug-2025 13:58:55.073 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [89] milliseconds

        測試效果

3:不以前臺shell終端的方式運行

        上邊的例子是以前段shell終端的例子運行,現在我們不這樣運行了。

[root@localhost /]# docker run -p 8080:8080 -d tomcat:9.0-jre11
644a2e27f2fad966e8659f7c0dcbd2c1d37ca573c7d5029571d429844baf0f36
[root@localhost /]# docker ps
CONTAINER ID   IMAGE              COMMAND             CREATED              STATUS              PORTS                                         NAMES
644a2e27f2fa   tomcat:9.0-jre11   "catalina.sh run"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   sleepy_lichterman## -d就表示后臺運行
## 返回一個容器ID
4:啟動容器指定名稱
docker run -p 8080:8080 -p 8081:8081 -d --name tomcat01 tomat:9.0-jre11## MQ往往有兩個端口,需要映射兩個外部端口。[root@localhost /]# docker run -p 8083:8080 -d --name tomcat01 tomcat:9.0-jre11
7508c78a5f6dbe46e06e70051eafd32f8d8e0a8c09239383039c437b42dff757
[root@localhost /]# 
[root@localhost /]# 
[root@localhost /]# 
[root@localhost /]# docker ps
CONTAINER ID   IMAGE              COMMAND             CREATED          STATUS          PORTS                                         NAMES
7508c78a5f6d   tomcat:9.0-jre11   "catalina.sh run"   23 seconds ago   Up 22 seconds   0.0.0.0:8083->8080/tcp, [::]:8083->8080/tcp   tomcat01
644a2e27f2fa   tomcat:9.0-jre11   "catalina.sh run"   6 minutes ago    Up 6 minutes    0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   sleepy_lichterman
[root@localhost /]# 

2:導入一個鏡像

docker load -i 鏡像名

3:查看容器信息

        1:展示運行的docker容器
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE              COMMAND             CREATED          STATUS          PORTS                                         NAMES
cb325c0e80f1   tomcat:9.0-jre11   "catalina.sh run"   3 minutes ago    Up 3 minutes    0.0.0.0:8081->8080/tcp, [::]:8081->8080/tcp   focused_shaw
b54865dcfaf9   tomcat:9.0-jre11   "catalina.sh run"   7 minutes ago    Up 7 minutes    0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   gracious_wiles
dd969070533f   tomcat:9.0-jre11   "catalina.sh run"   39 minutes ago   Up 39 minutes   8080/tcp                                      hopeful_curran
[root@localhost ~]# 

        重點關注下ports 0.0.0.0表示任意Ip可以訪問(默認開啟所有遠程權限),第三個代表誰也訪問不了。

        下圖:說明說明沒有容器在進行運行。

 2:列出所有容器

無論是否在運行

docker ps -a
[root@localhost /]# docker ps
CONTAINER ID   IMAGE              COMMAND             CREATED          STATUS          PORTS                                         NAMES
7508c78a5f6d   tomcat:9.0-jre11   "catalina.sh run"   23 seconds ago   Up 22 seconds   0.0.0.0:8083->8080/tcp, [::]:8083->8080/tcp   tomcat01
644a2e27f2fa   tomcat:9.0-jre11   "catalina.sh run"   6 minutes ago    Up 6 minutes    0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   sleepy_lichterman
[root@localhost /]# 
[root@localhost /]# 
[root@localhost /]# 
[root@localhost /]# 
[root@localhost /]# 
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE              COMMAND             CREATED          STATUS                        PORTS                                         NAMES
7508c78a5f6d   tomcat:9.0-jre11   "catalina.sh run"   2 minutes ago    Up 2 minutes                  0.0.0.0:8083->8080/tcp, [::]:8083->8080/tcp   tomcat01
644a2e27f2fa   tomcat:9.0-jre11   "catalina.sh run"   8 minutes ago    Up 8 minutes                  0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   sleepy_lichterman
cb325c0e80f1   tomcat:9.0-jre11   "catalina.sh run"   16 minutes ago   Exited (129) 8 minutes ago                                                  focused_shaw
b54865dcfaf9   tomcat:9.0-jre11   "catalina.sh run"   19 minutes ago   Exited (129) 8 minutes ago                                                  gracious_wiles
323bcddd3a0e   tomcat:9.0-jre11   "catalina.sh run"   24 minutes ago   Exited (130) 23 minutes ago                                                 nervous_rhodes
dd969070533f   tomcat:9.0-jre11   "catalina.sh run"   51 minutes ago   Exited (130) 8 minutes ago                                                  hopeful_curran
9e705b288eae   tomcat:8.0-jre8    "catalina.sh run"   52 minutes ago   Exited (139) 52 minutes ago                                                 wonderful_bohr
47779f64faf7   tomcat:8.0-jre8    "catalina.sh run"   53 minutes ago   Exited (139) 53 minutes ago                                                 laughing_babbage
dcb79690494e   tomcat:8.0-jre8    "catalina.sh run"   53 minutes ago   Exited (139) 53 minutes ago                                                 dazzling_saha
36e122433fa8   tomcat:8.0-jre8    "catalina.sh run"   54 minutes ago   Exited (139) 54 minutes ago                                                 intelligent_murdock
a22062e617ea   tomcat:8.0-jre8    "catalina.sh run"   58 minutes ago   Exited (139) 58 minutes ago                                                 suspicious_goldberg
9aac67eb0ee0   74cc54e27dc4       "/hello"            22 hours ago     Exited (0) 22 hours ago                                                     wonderful_lamarr
[root@localhost /]# 
3:列出所有退出狀態的容器
docker ps -f status=exited

        列出所有退出狀態的容器的ID

docker ps -f status=exited -q

        容器繼續運行的條件:docker當中容器繼續能運行的條件,docker必須得有一個前臺進行,如果沒有前臺進程。容器被認為空閑, 就會退出。

        helloworld這個容器執行完畢之后,就完事了。這種的沒有前臺進程,后續就不在運行了。

4:停止|關閉|重啟|立即關閉容器
docker start 容器名稱|ID
docker stop 容器名稱|ID
docker restart 容器名稱|ID
docker kill 容器名稱|ID[root@localhost /]# docker start dd969070533f
dd969070533f
[root@localhost /]# docker restart dd969070533f
dd969070533f
[root@localhost /]# docker stop  dd969070533f
dd969070533f
[root@localhost /]# docker start  dd969070533f
dd969070533f
[root@localhost /]# docker kill  dd969070533f
dd969070533f
[root@localhost /]# docker ps
CONTAINER ID   IMAGE              COMMAND             CREATED          STATUS          PORTS                                         NAMES
7508c78a5f6d   tomcat:9.0-jre11   "catalina.sh run"   9 minutes ago    Up 9 minutes    0.0.0.0:8083->8080/tcp, [::]:8083->8080/tcp   tomcat01
644a2e27f2fa   tomcat:9.0-jre11   "catalina.sh run"   14 minutes ago   Up 14 minutes   0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   sleepy_lichterman
[root@localhost /]# docker      ps  -a
CONTAINER ID   IMAGE              COMMAND             CREATED             STATUS                           PORTS                                         NAMES
7508c78a5f6d   tomcat:9.0-jre11   "catalina.sh run"   9 minutes ago       Up 9 minutes                     0.0.0.0:8083->8080/tcp, [::]:8083->8080/tcp   tomcat01
644a2e27f2fa   tomcat:9.0-jre11   "catalina.sh run"   14 minutes ago      Up 14 minutes                    0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   sleepy_lichterman
cb325c0e80f1   tomcat:9.0-jre11   "catalina.sh run"   23 minutes ago      Exited (129) 15 minutes ago                                                    focused_shaw
b54865dcfaf9   tomcat:9.0-jre11   "catalina.sh run"   26 minutes ago      Exited (129) 15 minutes ago                                                    gracious_wiles
323bcddd3a0e   tomcat:9.0-jre11   "catalina.sh run"   31 minutes ago      Exited (130) 29 minutes ago                                                    nervous_rhodes
dd969070533f   tomcat:9.0-jre11   "catalina.sh run"   58 minutes ago      Exited (137) 15 seconds ago                                                    hopeful_curran
9e705b288eae   tomcat:8.0-jre8    "catalina.sh run"   59 minutes ago      Exited (139) 59 minutes ago                                                    wonderful_bohr
47779f64faf7   tomcat:8.0-jre8    "catalina.sh run"   About an hour ago   Exited (139) About an hour ago                                                 laughing_babbage
dcb79690494e   tomcat:8.0-jre8    "catalina.sh run"   About an hour ago   Exited (139) About an hour ago                                                 dazzling_saha
36e122433fa8   tomcat:8.0-jre8    "catalina.sh run"   About an hour ago   Exited (139) About an hour ago                                                 intelligent_murdock
a22062e617ea   tomcat:8.0-jre8    "catalina.sh run"   About an hour ago   Exited (139) About an hour ago                                                 suspicious_goldberg
9aac67eb0ee0   74cc54e27dc4       "/hello"            22 hours ago        Exited (0) 22 hours ago                                                        wonderful_lamarr
[root@localhost /]# 
5:刪除容器
docker rm 容器名稱|容器ID[root@localhost /]# docker rm 9aac
9aac
[root@localhost /]# docker rm -f $(docker ps -a -q)
7508c78a5f6d
644a2e27f2fa
cb325c0e80f1
b54865dcfaf9
323bcddd3a0e
dd969070533f
9e705b288eae
47779f64faf7
dcb79690494e
36e122433fa8
a22062e617ea
[root@localhost /]# 
  6:查看容器運行日志
docker logs 容器ID:容器名稱
docker logs -f 容器ID:容器名稱 事實查看日志。
docker logs -f -t 容器id:容器名稱  實時且有時間戳。
docker logs --tail 5 查看文件尾部最后5行。
7:查看容器內的進程
docker top 容器ID|容器名稱[root@localhost /]# docker ps
CONTAINER ID   IMAGE              COMMAND             CREATED         STATUS         PORTS                                         NAMES
87c68ee3529b   tomcat:9.0-jre11   "catalina.sh run"   6 minutes ago   Up 6 minutes   0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   tomcat01
[root@localhost /]# docker top 87c
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                7658                7636                0                   10:56               ?                   00:00:02            /opt/java/openjdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dsun.io.useCanonCaches=false -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
[root@localhost /]# PID容器內部的進程的ID。
8:通過宿主機與容器內部進行交互

        進入容器

docker exec -it 容器ID|容器名稱  bash-it:進入容器的交互模型
exec:進入
bash:容器內部交互頁面[root@localhost /]# docker ps
CONTAINER ID   IMAGE              COMMAND             CREATED         STATUS         PORTS                                         NAMES
87c68ee3529b   tomcat:9.0-jre11   "catalina.sh run"   6 minutes ago   Up 6 minutes   0.0.0.0:8080->8080/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/95436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/95436.shtml
英文地址,請注明出處:http://en.pswp.cn/web/95436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LINUX驅動篇(二)驅動開發

系列文章目錄 文章目錄系列文章目錄總結介紹字符設備驅動工作原理驅動框架加載卸載注冊注銷設備號詳解打開關閉等操作實例分析led驅動編寫地址映射LED驅動改進驅動方式總結自動注冊注銷設備號自動創建設備節點設備樹設備樹LED驅動實驗pinctrl和gpio并發和競爭原子操作自旋鎖塊設…

【工具】開源大屏設計器 自用整理

【工具】開源大屏設計器 自用整理 GoView低代碼數據可視化 GoView 說明文檔 | 低代碼數據可視化開發平臺 JimuReport積木報表(免費報表工具) https://github.com/jeecgboot/JimuReport 「數據可視化&#xff1a;報表、大屏、數據看板」積木報表是一款類Excel操作風格&#xf…

.NetCore MVC

這個是我自己記得筆記&#xff0c;最好有點基礎看我的。 html 輔助標簽 Html.DropList 分布視圖 使用 RenderPartialAsync 呈現分部視圖。 此方法不返回 IHtmlContent。 它將呈現的輸出直接流式傳輸到響應。 因為該方法不返回結果&#xff0c;所以必須在 Razor 代碼塊內調用它…

@GitLab 介紹部署使用詳細指南

文章目錄**GitLab 介紹&部署&使用詳細指南****1. GitLab 介紹與核心概念****1.1 什么是 GitLab&#xff1f;****1.2 核心特性****1.3 版本區別****2. 部署指南 (以 Ubuntu 22.04 LTS 為例)****2.1 環境準備****2.2 安裝步驟****2.3 重要配置文件****3. 基本使用入門***…

如何通過 AI IDE 集成開發工具快速生成簡易留言板系統

在當今快速迭代的軟件開發環境中&#xff0c;AI 輔助編程工具已經成為開發者提高效率的重要手段。本文將詳細介紹如何利用 AI IDE 集成開發工具快速構建一個功能完整的簡易留言板系統&#xff0c;涵蓋從需求分析到部署上線的全過程&#xff0c;并提供完整代碼、流程圖、Prompt …

機器學習:從技術原理到實踐應用的深度解析

目錄引言一.什么是機器學習&#xff08;ML&#xff09;&#xff1f;——從技術本質到核心目標1.與傳統編程的本質區別&#xff1a;規則的“來源不同”2.核心目標&#xff1a;在“偏差-方差權衡”下優化性能指標二.機器學習的核心分類——基于“數據標簽”與“學習范式”的技術劃…

[muduo網絡庫]-muduo庫TcpServer類解析

本貼用于記錄muduo庫的學習過程&#xff0c;以下是關于TcpServer的個人理解。 TcpServer內含Acceptor、threadpool等類&#xff0c;算是把主線程所有要做的事封裝了起來。 重要成員變量 EventLoop *loop_; // baseloop 用戶自定義的loopconst std::string ipPort_;const std…

工作兩年,最后從css轉向tailwind了!

菜鳥上班已經兩年了&#xff0c;從一個對技術充滿熱情的小伙子&#xff0c;變成了一個職場老鳥了。自以為自己在不停的學習&#xff0c;但是其實就是學一些零碎的知識點&#xff0c;比如&#xff1a;vue中什么東西沒見過、js什么特性沒用過、css新出了個啥 …… 菜鳥感覺自己也…

macOS 更新后找不到鑰匙串訪問工具的解決方案

macOS 更新后找不到鑰匙串訪問工具的解決方案 隨著macOS的不斷更新&#xff0c;一些系統工具的位置可能會發生變化&#xff0c;給用戶帶來不便。鑰匙串訪問&#xff08;Keychain Access&#xff09;是macOS中一個非常重要的工具&#xff0c;用于管理密碼、證書等敏感信息。最近…

深入理解Go 與 PHP 在參數傳遞上的核心區別

$run_return_data []; $ret $this->handleData($event_req_info, $run_return_data); public function handleData($event_req_info, &$run_return_data): array {$run_return_data [ //使用引用變量返回數據shop_id > $shop_id,request_id > $request_…

【Dify智能體】2025 最新版Linux部署Dify教程(Ubuntu)

一、前言 Dify 是一款開源的智能體工作流平臺,可以用來快速構建 AI 應用。相比手動搭建復雜的依賴環境,Docker Compose 部署方式更簡單、更快速、更穩定。本文將一步步帶你在 Ubuntu 22.04 + Docker Compose v2 上安裝 Dify,并給出常見問題與優化方案。 ps:如果還沒有安裝…

基礎思想:動態規劃與貪心算法

一、動態規劃核心思想&#xff1a;將復雜問題分解為相互重疊的子問題&#xff0c;通過保存子問題的解來避免重復計算&#xff08;記憶化&#xff09;。動態規劃需要通過子問題的最優解&#xff0c;推導出最終問題的最優解&#xff0c;因此這種方法特別注重子問題之間的轉移關系…

使用生成對抗網絡增強網絡入侵檢測性能

文章目錄前言一、GAN 模型介紹二、研究方法1.數據集選擇與處理2.IDS 基線模型構建3. GAN 模型設計與樣本生成4.生成樣本質量評估三、實驗評估四、總結前言 網絡入侵檢測系統&#xff08;Network Intrusion Detection System, NIDS&#xff09;在保護關鍵數字基礎設施免受網絡威…

VR森林經營模擬體驗帶動旅游經濟發展

將VR森林經營模擬體驗作為一種獨特的旅游項目&#xff0c;正逐漸成為旅游市場的新熱點。游客們無需長途跋涉前往深山老林&#xff0c;只需在旅游景區的VR體驗中心&#xff0c;戴上VR設備&#xff0c;就能開啟一場奇妙的森林之旅。在虛擬森林中&#xff0c;他們可以盡情探索&…

Vue2存量項目國際化改造踩坑

Vue2存量項目國際化改造踩坑 一、背景 在各類業務場景中&#xff0c;國際化作為非常重要的一部分已經有非常多成熟的方案&#xff0c;但對于一些存量項目則存在非常的改造成本&#xff0c;本文將分享一個的Vue2項目國際化改造方案&#xff0c;通過自定義Webpack插件自動提取中文…

硬件開發(1)—單片機(1)

1.單片機相關概念1.CPU&#xff1a;中央處理器&#xff0c;數據運算、指令處理&#xff0c;CPU性能越高&#xff0c;完成指令處理和數據運算的速度越快核心&#xff1a;指令解碼執行數據運算處理2.MCU&#xff1a;微控制器&#xff0c;集成度比較高&#xff0c;將所有功能集成到…

Elasticsearch面試精講 Day 4:集群發現與節點角色

【Elasticsearch面試精講 Day 4】集群發現與節點角色 在“Elasticsearch面試精講”系列的第四天&#xff0c;我們將深入探討Elasticsearch分布式架構中的核心機制——集群發現&#xff08;Cluster Discovery&#xff09;與節點角色&#xff08;Node Roles&#xff09;。這是構…

微信小程序長按識別圖片二維碼

提示&#xff1a;二維碼圖片才能顯示識別菜單1.第一種方法添加屬性&#xff1a;show-menu-by-longpress添加屬性&#xff1a;show-menu-by-longpress <image src"{{shop.wx_qrcode}}" mode"widthFix" show-menu-by-longpress></image>2.第二種…

智能化數據平臺:AI 與大模型驅動的架構升級

在前面的文章中,我們探討了 存算分離與云原生,以及 流批一體化計算架構 的演進趨勢。這些演進解決了“算力與數據效率”的問題。但在今天,企業在數據平臺上的需求已經從 存儲與計算的統一,逐步走向 智能化與自動化。 尤其是在 AI 與大模型快速發展的背景下,數據平臺正在發…

解鎖 Vue 動畫的終極指南:Vue Bits 實戰進階教程,讓你的Vue動畫比原生動畫還絲滑,以及動畫不生效解決方案。

一條 Splash Cursor 的 10 秒 Demo 視頻曾創下 200 萬 播放量&#xff0c;讓 React Bits 風靡全球。如今&#xff0c;Vue 開發者終于迎來了官方移植版 —— Vue Bits。 在現代 Web 開發中&#xff0c;UI 動效已成為提升用戶體驗的關鍵因素。Vue Bits 作為 React Bits 的官方 Vu…