版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Linux系統(tǒng)應(yīng)用容器部署細則一、概述
本細則旨在提供Linux系統(tǒng)下應(yīng)用容器部署的標準化流程和操作指南。通過遵循本細則,用戶能夠高效、安全地完成應(yīng)用容器的部署與管理,確保系統(tǒng)資源的合理利用和應(yīng)用的穩(wěn)定運行。本細則涵蓋了從環(huán)境準備到容器運行的各個關(guān)鍵環(huán)節(jié),適用于具備基本Linux操作知識的用戶。
---
二、環(huán)境準備
在開始容器部署之前,需確保具備以下基礎(chǔ)環(huán)境:
(一)硬件與操作系統(tǒng)要求
1.硬件要求
-服務(wù)器配置建議:CPU不低于4核,內(nèi)存不低于8GB,存儲空間不低于100GB(根據(jù)應(yīng)用規(guī)模調(diào)整)。
-操作系統(tǒng):CentOS7.x或Ubuntu18.04及以上版本。
2.網(wǎng)絡(luò)要求
-確保服務(wù)器具備穩(wěn)定的網(wǎng)絡(luò)連接,推薦使用IPv4或IPv6。
-防火墻需開放必要的端口(如22/TCP用于SSH,80/TCP用于HTTP等)。
(二)軟件依賴安裝
1.基礎(chǔ)軟件包
-使用以下命令安裝:
```bash
sudoapt-getupdate&&sudoapt-getinstall-ydocker.io
```
-安裝完成后啟動并設(shè)置開機自啟:
```bash
sudosystemctlstartdocker
sudosystemctlenabledocker
```
2.鏡像管理工具(可選)
-安裝Podman(替代Docker的輕量級方案):
```bash
sudoapt-getinstall-ypodman
```
---
三、容器部署流程
(一)基礎(chǔ)容器部署
1.拉取官方鏡像
-示例:拉取Nginx鏡像:
```bash
dockerpullnginx:latest
```
2.運行容器
-基礎(chǔ)運行命令:
```bash
dockerrun--namemy-nginx-d-p80:80nginx
```
-參數(shù)說明:`--name`設(shè)置容器名,`-d`后臺運行,`-p`端口映射。
3.驗證部署
-訪問映射端口(如`http://<服務(wù)器IP>`),確認服務(wù)正常。
(二)自定義配置部署
1.準備配置文件
-將自定義配置文件(如Nginx的`nginx.conf`)放入本地目錄。
2.掛載配置文件
-運行命令:
```bash
dockerrun--namemy-nginx-d-p80:80-v/path/to/nginx.conf:/etc/nginx/nginx.confnginx
```
3.數(shù)據(jù)卷掛載(持久化)
-示例:掛載日志目錄:
```bash
dockerrun--namemy-nginx-d-p80:80-v/var/log/nginx:/var/log/nginxnginx
```
(三)多容器網(wǎng)絡(luò)配置
1.創(chuàng)建自定義網(wǎng)絡(luò)
-命令:
```bash
dockernetworkcreatemy-net
```
2.容器加入網(wǎng)絡(luò)
-運行時指定網(wǎng)絡(luò):
```bash
dockerrun--namedb-container-d--networkmy-netpostgres
```
3.容器間通信
-示例:容器A(IP:)訪問容器B(IP:):
```bash
curl:80
```
---
四、高級部署技巧
(一)鏡像構(gòu)建與優(yōu)化
1.編寫Dockerfile
-示例(基礎(chǔ)Web應(yīng)用):
```dockerfile
FROMnode:14
WORKDIR/app
COPYpackage.json.
RUNnpminstall
COPY..
EXPOSE3000
CMD["npm","start"]
```
2.構(gòu)建鏡像
-命令:
```bash
dockerbuild-tmy-web-app.
```
3.多階段構(gòu)建(優(yōu)化鏡像大小)
-示例:分離構(gòu)建環(huán)境與運行環(huán)境:
```dockerfile
Stage1:Build
FROMnode:14ASbuilder
...
Stage2:Runtime
FROMnginx:alpine
COPY--from=builder/app/build/usr/share/nginx/html
...
```
(二)容器編排
1.使用DockerCompose
-編寫`docker-compose.yml`:
```yaml
version:'3'
services:
web:
image:my-web-app
ports:
-"80:3000"
depends_on:
-db
db:
image:postgres
environment:
POSTGRES_DB:mydb
```
2.部署命令
-啟動全部服務(wù):
```bash
docker-composeup-d
```
---
五、維護與監(jiān)控
(一)日志管理
1.查看實時日志
-命令:
```bash
dockerlogs-fmy-nginx
```
2.日志輪轉(zhuǎn)(建議使用外部工具)
-可配合`logrotate`配置文件實現(xiàn)。
(二)性能監(jiān)控
1.使用DockerStats
-命令:
```bash
dockerstats--no-stream
```
2.集成監(jiān)控工具(可選)
-如Prometheus+Grafana(需額外配置)。
(三)容器更新與回滾
1.更新鏡像
-命令:
```bash
docker-composepull
docker-composeup-d--force-recreate
```
2.回滾到舊版本
-刪除當(dāng)前容器并重新拉取舊鏡像。
---
六、安全注意事項
1.鏡像安全掃描
-使用`Trivy`掃描鏡像漏洞:
```bash
trivyimagemy-web-app
```
2.最小權(quán)限原則
-運行容器時避免使用root用戶(如`--user1000:1000`)。
3.網(wǎng)絡(luò)隔離
-優(yōu)先使用自定義網(wǎng)絡(luò)而非默認橋接網(wǎng)絡(luò)。
---
七、常見問題排查
(一)連接失敗
1.檢查端口映射
-確認`dockerps`中的`PORTS`列是否正確。
2.網(wǎng)絡(luò)問題
-使用`dockernetworkinspect`檢查網(wǎng)絡(luò)配置。
(二)資源不足
1.查看系統(tǒng)負載
-命令:
```bash
top
```
2.限制容器資源
-示例:限制CPU與內(nèi)存:
```bash
dockerrun--namemy-app-d--cpus="0.5"--memory="256M"my-app-image
```
---
五、維護與監(jiān)控(續(xù))
(三)容器更新與回滾(續(xù))
1.滾動更新(DockerCompose)
-在`docker-compose.yml`中配置服務(wù)依賴關(guān)系,實現(xiàn)滾動更新。
-示例:更新`web`服務(wù)(不影響`db`服務(wù)):
```yaml
version:'3'
services:
web:
image:my-web-app:latest
ports:
-"80:3000"
depends_on:
-db
restart:always
db:
image:postgres:latest
environment:
POSTGRES_DB:mydb
restart:always
```
-更新命令:
```bash
docker-composepull
docker-composeup-d--force-recreate
```
-注意:`depends_on`僅保證啟動順序,不等待服務(wù)就緒。
2.回滾到特定版本
-方法一:手動刪除當(dāng)前容器并拉取舊鏡像。
```bash
docker-composedown
docker-composepull
docker-composeup-d--build
```
-方法二:使用版本控制工具(如Git)管理Dockerfile,通過切換分支回滾。
(四)容器存儲管理
1.綁定掛載(BindMount)
-示例:掛載宿主機目錄到容器:
```bash
dockerrun--namemy-app-d-v/host/data:/container/datamy-app-image
```
-優(yōu)點:數(shù)據(jù)持久化,容器重啟后數(shù)據(jù)保留。
-注意:避免權(quán)限問題(如宿主機目錄權(quán)限不足)。
2.卷(Volume)管理
-創(chuàng)建獨立于宿主機的數(shù)據(jù)卷:
```bash
dockervolumecreatemy-data卷
dockerrun--namemy-app-d-vmy-data卷:/container/datamy-app-image
```
-優(yōu)點:跨容器共享,數(shù)據(jù)隔離。
3.數(shù)據(jù)卷快照與恢復(fù)
-使用`dockersave`與`dockerload`備份/恢復(fù)數(shù)據(jù)卷(適用于簡單場景)。
```bash
dockersavemy-data卷>my-data.tar
dockerload<my-data.tar
```
-推薦方案:結(jié)合外部存儲(如NFS、Ceph)或數(shù)據(jù)庫自帶的備份功能。
(五)日志聚合與分析
1.統(tǒng)一日志入口(Fluentd/Journald)
-安裝Fluentd(多語言日志收集):
```bash
dockerrun--namefluentd-d-v/var/log:/logs-v/fluentd/conf/fluent.conf:/fluentd.conffluent/fluentd:latest
```
-配置文件`fluent.conf`示例:
```xml
<sourcetype="tail">
<path>/var/log/containers</path>
<pos_file>/var/log/containers/pos</pos_file>
<tag>docker</tag>
<format>json</format>
</source>
<filterdocker>
<pattern>.</pattern>
<multi_line>no</multi_line>
<remove_tag>docker</remove_tag>
</filter>
<destinationtype="stdout"/>
```
-日志輸出到標準輸出可配合ELK堆棧(Elasticsearch,Logstash,Kibana)分析。
2.系統(tǒng)日志管理(Journald)
-使用`systemd-journald`收集內(nèi)核與系統(tǒng)日志:
```bash
dockerrun--namejournald-d--restart=always--networkhost/linux-system-automation/journald:latest
```
-配置文件需調(diào)整`/etc/systemd/journald.conf.d/99-docker.conf`:
```ini
[Journal]
SystemJournal=true
MaxRetentionDays=7
```
六、安全注意事項(續(xù))
1.鏡像層最小化
-使用輕量級基礎(chǔ)鏡像(如Alpine):
```dockerfile
FROMalpine:3.14
RUNapkadd--no-cachenginx
EXPOSE80
CMD["nginx","-g","daemonoff;"]
```
-去除不必要的包可進一步減小鏡像體積。
2.網(wǎng)絡(luò)隔離(自定義網(wǎng)絡(luò))
-示例:限制容器訪問外部網(wǎng)絡(luò)(僅DNS解析):
```yaml
version:'3'
services:
web:
image:my-app
networks:
-my-net
security_opt:
-no-new-privileges:true
networks:
my-net:
driver:bridge
ipam:
config:
-subnet:/16
```
3.秘密管理(Secrets)
-避免將敏感信息(如API密鑰)硬編碼在配置文件中。
-使用DockerSecrets(需DockerSwarm模式):
```yaml
version:'3.7'
secrets:
db-password:
external:true
services:
db:
image:postgres
environment:
POSTGRES_PASSWORD:${POSTGRES_PASSWORD}
secrets:
-db-password
```
-注意:Secrets功能需集群環(huán)境支持。
4.容器運行時安全
-禁用不必要的容器功能:
```bash
dockerrun--security-opt=seccomp:unconfined--security-opt=apparmor:unconfinedmy-app
```
-推薦使用`apparmor`或`seccomp`限制容器權(quán)限(需系統(tǒng)支持)。
七、常見問題排查(續(xù))
(五)資源耗盡問題
1.CPU過載
-查看容器CPU使用率:
```bash
dockerstats--no-stream--format"{{.Name}}:{{.CPUUsage}}\n"
```
-限制CPU核心數(shù):
```bash
dockerrun--namemy-app-d--cpus="0.75"my-app-image
```
2.內(nèi)存不足
-檢查OOM(OutOfMemory)日志:
```bash
journalctl-udocker|grepOOM
```
-設(shè)置內(nèi)存限制:
```bash
dockerrun--namemy-app-d--memory="512M"my-app-image
```
(六)網(wǎng)絡(luò)連接異常
1.端口沖突
-檢查宿主機端口占用:
```bash
sudolsof-i:80
```
-修改容器端口映射:
```bash
dockerrun--namemy-app-d-p8080:80my-app-image
```
2.DNS解析失敗
-查看容器DNS配置:
```bash
dockerexecmy-appcat/etc/resolv.conf
```
-手動修改DNS:
```bash
dockerrun--namemy-app-d-eDNS=my-app-image
```
(七)鏡像構(gòu)建失敗
1.多階段構(gòu)建錯誤
-常見問題:`CMD`/`ENTRYPOINT`與工作目錄沖突。
-解決方案:確保`WORKDIR`在構(gòu)建階段定義。
```dockerfile
FROMnode:14ASbuilder
WORKDIR/app
COPYpackage.json.
RUNnpminstall
COPY..
FROMnginx:alpine
WORKDIR/usr/share/nginx/html
COPY--from=builder/app/build./
```
2.依賴缺失
-處理`MissingDependency`錯誤:
```bash
RUNapt-getupdate&&apt-getinstall-y--no-install-recommends<package>
```
-清理緩存:
```bash
dockerbuild--no-cache-tmy-app.
```
八、自動化運維
(一)CI/CD集成
1.Jenkins流水線示例
-Docker構(gòu)建任務(wù):
```groovy
pipeline{
agentany
stages{
stage('Build'){
steps{
script{
sh'dockerbuild-tmy-app:${env.BUILD_NUMBER}.'
dockertagmy-app:${env.BUILD_NUMBER}my-app:latest
}
}
}
stage('Push'){
steps{
script{
withCredentials([usernamePassword(credentialsId:'docker-hub',usernameVariable:'USERNAME',passwordVariable:'PASSWORD')]){
sh'dockerlogin-u$USERNAME-p$PASSWORD'
sh'dockerpushmy-app:latest'
}
}
}
}
}
}
```
2.GitLabCI配置
-`.gitlab-ci.yml`示例:
```yaml
stages:
-build
-deploy
build:
stage:build
script:
-dockerbuild-tmy-app.
-dockertagmy-app:latest/my-app:latest
artifacts:
paths:
-Dockerfile
deploy:
stage:deploy
script:
-dockerlogin-u$CI_REGISTRY_USER-p$CI_REGISTRY_PASSWORD
-dockerpush/my-app:latest
```
(二)監(jiān)控自動化
1.Prometheus+Grafana集成
-容器化部署:
```yaml
version:'3'
services:
prometheus:
image:prom/prometheus
volumes:
-./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image:grafana/grafana
environment:
-GF_SECURITY_ADMIN_USER=admin
-GF_SECURITY_ADMIN_PASSWORD=yourpassword
volumes:
-grafana-provisioning:/etc/grafana/provisioning
volumes:
grafana-provisioning:
```
-`prometheus.yml`配置:
```yaml
scrape_configs:
-job_name:'docker'
static_configs:
-targets:['localhost:9300']
```
2.Alertmanager告警
-配置文件示例:
```yaml
route:
group_by:['job']
group_interval:3m
repeat_interval:1h
routes:
-match:
group_by:['job']
type:'query'
action:
send_to:'default'
-match:
group_by:['alertname']
type:'query'
action:
send_to:'webhook'
notifications:
-name:'webhook'
route:
group_by:['alertname']
interval:5m
send_resolved:true
payload:
title:'Alert:{{$labels.alertname}}'
message:'{{$labels.message}}'
http_api:
url:''
```
(三)備份與恢復(fù)策略
1.容器數(shù)據(jù)備份
-使用`rsync`遠程備份:
```bash
dockerrun--namersync-backup-v/path/to/data:/data-v/path/to/backup:/backupalpinersync-avz/data/user@remote:/remote/data
```
-定時任務(wù)(`cron`):
```bash
02dockerrun--namersync-backup-v/path/to/data:/data-v/path/to/backup:/backupalpinersync-avz/data/user@remote:/remote/data
```
2.容器狀態(tài)恢復(fù)
-備份鏡像:
```bash
dockersavemy-app>my-app.tar
```
-恢復(fù)鏡像:
```bash
dockerload<my-app.tar
docker-composeup-d
```
-推薦方案:使用數(shù)據(jù)庫備份(如PostgreSQL的`pg_dump`)或配置管理工具(Ansible、SaltStack)。
九、最佳實踐總結(jié)
1.鏡像構(gòu)建
-堅持多階段構(gòu)建,僅包含運行所需文件。
-定期更新基礎(chǔ)鏡像(如Node.js、Alpine)。
2.網(wǎng)絡(luò)配置
-使用自定義網(wǎng)絡(luò)而非默認橋接。
-關(guān)閉容器主機網(wǎng)絡(luò)訪問(`--network=none`)。
3.日志管理
-統(tǒng)一日志格式(JSON)。
-避免直接輸出到標準輸出(可能丟失)。
4.資源限制
-所有容器默認限制CPU與內(nèi)存。
-使用`--memory-swap`避免OOM時進程被殺。
5.更新策略
-使用DockerCompose的`depends_on`保證依賴順序。
-避免同時更新多個關(guān)鍵服務(wù)。
6.安全原則
-基礎(chǔ)鏡像最小化。
-敏感信息使用Secrets管理。
7.監(jiān)控優(yōu)先
-部署初期集成Prometheus。
-配置合理的告警閾值。
一、概述
本細則旨在提供Linux系統(tǒng)下應(yīng)用容器部署的標準化流程和操作指南。通過遵循本細則,用戶能夠高效、安全地完成應(yīng)用容器的部署與管理,確保系統(tǒng)資源的合理利用和應(yīng)用的穩(wěn)定運行。本細則涵蓋了從環(huán)境準備到容器運行的各個關(guān)鍵環(huán)節(jié),適用于具備基本Linux操作知識的用戶。
---
二、環(huán)境準備
在開始容器部署之前,需確保具備以下基礎(chǔ)環(huán)境:
(一)硬件與操作系統(tǒng)要求
1.硬件要求
-服務(wù)器配置建議:CPU不低于4核,內(nèi)存不低于8GB,存儲空間不低于100GB(根據(jù)應(yīng)用規(guī)模調(diào)整)。
-操作系統(tǒng):CentOS7.x或Ubuntu18.04及以上版本。
2.網(wǎng)絡(luò)要求
-確保服務(wù)器具備穩(wěn)定的網(wǎng)絡(luò)連接,推薦使用IPv4或IPv6。
-防火墻需開放必要的端口(如22/TCP用于SSH,80/TCP用于HTTP等)。
(二)軟件依賴安裝
1.基礎(chǔ)軟件包
-使用以下命令安裝:
```bash
sudoapt-getupdate&&sudoapt-getinstall-ydocker.io
```
-安裝完成后啟動并設(shè)置開機自啟:
```bash
sudosystemctlstartdocker
sudosystemctlenabledocker
```
2.鏡像管理工具(可選)
-安裝Podman(替代Docker的輕量級方案):
```bash
sudoapt-getinstall-ypodman
```
---
三、容器部署流程
(一)基礎(chǔ)容器部署
1.拉取官方鏡像
-示例:拉取Nginx鏡像:
```bash
dockerpullnginx:latest
```
2.運行容器
-基礎(chǔ)運行命令:
```bash
dockerrun--namemy-nginx-d-p80:80nginx
```
-參數(shù)說明:`--name`設(shè)置容器名,`-d`后臺運行,`-p`端口映射。
3.驗證部署
-訪問映射端口(如`http://<服務(wù)器IP>`),確認服務(wù)正常。
(二)自定義配置部署
1.準備配置文件
-將自定義配置文件(如Nginx的`nginx.conf`)放入本地目錄。
2.掛載配置文件
-運行命令:
```bash
dockerrun--namemy-nginx-d-p80:80-v/path/to/nginx.conf:/etc/nginx/nginx.confnginx
```
3.數(shù)據(jù)卷掛載(持久化)
-示例:掛載日志目錄:
```bash
dockerrun--namemy-nginx-d-p80:80-v/var/log/nginx:/var/log/nginxnginx
```
(三)多容器網(wǎng)絡(luò)配置
1.創(chuàng)建自定義網(wǎng)絡(luò)
-命令:
```bash
dockernetworkcreatemy-net
```
2.容器加入網(wǎng)絡(luò)
-運行時指定網(wǎng)絡(luò):
```bash
dockerrun--namedb-container-d--networkmy-netpostgres
```
3.容器間通信
-示例:容器A(IP:)訪問容器B(IP:):
```bash
curl:80
```
---
四、高級部署技巧
(一)鏡像構(gòu)建與優(yōu)化
1.編寫Dockerfile
-示例(基礎(chǔ)Web應(yīng)用):
```dockerfile
FROMnode:14
WORKDIR/app
COPYpackage.json.
RUNnpminstall
COPY..
EXPOSE3000
CMD["npm","start"]
```
2.構(gòu)建鏡像
-命令:
```bash
dockerbuild-tmy-web-app.
```
3.多階段構(gòu)建(優(yōu)化鏡像大?。?/p>
-示例:分離構(gòu)建環(huán)境與運行環(huán)境:
```dockerfile
Stage1:Build
FROMnode:14ASbuilder
...
Stage2:Runtime
FROMnginx:alpine
COPY--from=builder/app/build/usr/share/nginx/html
...
```
(二)容器編排
1.使用DockerCompose
-編寫`docker-compose.yml`:
```yaml
version:'3'
services:
web:
image:my-web-app
ports:
-"80:3000"
depends_on:
-db
db:
image:postgres
environment:
POSTGRES_DB:mydb
```
2.部署命令
-啟動全部服務(wù):
```bash
docker-composeup-d
```
---
五、維護與監(jiān)控
(一)日志管理
1.查看實時日志
-命令:
```bash
dockerlogs-fmy-nginx
```
2.日志輪轉(zhuǎn)(建議使用外部工具)
-可配合`logrotate`配置文件實現(xiàn)。
(二)性能監(jiān)控
1.使用DockerStats
-命令:
```bash
dockerstats--no-stream
```
2.集成監(jiān)控工具(可選)
-如Prometheus+Grafana(需額外配置)。
(三)容器更新與回滾
1.更新鏡像
-命令:
```bash
docker-composepull
docker-composeup-d--force-recreate
```
2.回滾到舊版本
-刪除當(dāng)前容器并重新拉取舊鏡像。
---
六、安全注意事項
1.鏡像安全掃描
-使用`Trivy`掃描鏡像漏洞:
```bash
trivyimagemy-web-app
```
2.最小權(quán)限原則
-運行容器時避免使用root用戶(如`--user1000:1000`)。
3.網(wǎng)絡(luò)隔離
-優(yōu)先使用自定義網(wǎng)絡(luò)而非默認橋接網(wǎng)絡(luò)。
---
七、常見問題排查
(一)連接失敗
1.檢查端口映射
-確認`dockerps`中的`PORTS`列是否正確。
2.網(wǎng)絡(luò)問題
-使用`dockernetworkinspect`檢查網(wǎng)絡(luò)配置。
(二)資源不足
1.查看系統(tǒng)負載
-命令:
```bash
top
```
2.限制容器資源
-示例:限制CPU與內(nèi)存:
```bash
dockerrun--namemy-app-d--cpus="0.5"--memory="256M"my-app-image
```
---
五、維護與監(jiān)控(續(xù))
(三)容器更新與回滾(續(xù))
1.滾動更新(DockerCompose)
-在`docker-compose.yml`中配置服務(wù)依賴關(guān)系,實現(xiàn)滾動更新。
-示例:更新`web`服務(wù)(不影響`db`服務(wù)):
```yaml
version:'3'
services:
web:
image:my-web-app:latest
ports:
-"80:3000"
depends_on:
-db
restart:always
db:
image:postgres:latest
environment:
POSTGRES_DB:mydb
restart:always
```
-更新命令:
```bash
docker-composepull
docker-composeup-d--force-recreate
```
-注意:`depends_on`僅保證啟動順序,不等待服務(wù)就緒。
2.回滾到特定版本
-方法一:手動刪除當(dāng)前容器并拉取舊鏡像。
```bash
docker-composedown
docker-composepull
docker-composeup-d--build
```
-方法二:使用版本控制工具(如Git)管理Dockerfile,通過切換分支回滾。
(四)容器存儲管理
1.綁定掛載(BindMount)
-示例:掛載宿主機目錄到容器:
```bash
dockerrun--namemy-app-d-v/host/data:/container/datamy-app-image
```
-優(yōu)點:數(shù)據(jù)持久化,容器重啟后數(shù)據(jù)保留。
-注意:避免權(quán)限問題(如宿主機目錄權(quán)限不足)。
2.卷(Volume)管理
-創(chuàng)建獨立于宿主機的數(shù)據(jù)卷:
```bash
dockervolumecreatemy-data卷
dockerrun--namemy-app-d-vmy-data卷:/container/datamy-app-image
```
-優(yōu)點:跨容器共享,數(shù)據(jù)隔離。
3.數(shù)據(jù)卷快照與恢復(fù)
-使用`dockersave`與`dockerload`備份/恢復(fù)數(shù)據(jù)卷(適用于簡單場景)。
```bash
dockersavemy-data卷>my-data.tar
dockerload<my-data.tar
```
-推薦方案:結(jié)合外部存儲(如NFS、Ceph)或數(shù)據(jù)庫自帶的備份功能。
(五)日志聚合與分析
1.統(tǒng)一日志入口(Fluentd/Journald)
-安裝Fluentd(多語言日志收集):
```bash
dockerrun--namefluentd-d-v/var/log:/logs-v/fluentd/conf/fluent.conf:/fluentd.conffluent/fluentd:latest
```
-配置文件`fluent.conf`示例:
```xml
<sourcetype="tail">
<path>/var/log/containers</path>
<pos_file>/var/log/containers/pos</pos_file>
<tag>docker</tag>
<format>json</format>
</source>
<filterdocker>
<pattern>.</pattern>
<multi_line>no</multi_line>
<remove_tag>docker</remove_tag>
</filter>
<destinationtype="stdout"/>
```
-日志輸出到標準輸出可配合ELK堆棧(Elasticsearch,Logstash,Kibana)分析。
2.系統(tǒng)日志管理(Journald)
-使用`systemd-journald`收集內(nèi)核與系統(tǒng)日志:
```bash
dockerrun--namejournald-d--restart=always--networkhost/linux-system-automation/journald:latest
```
-配置文件需調(diào)整`/etc/systemd/journald.conf.d/99-docker.conf`:
```ini
[Journal]
SystemJournal=true
MaxRetentionDays=7
```
六、安全注意事項(續(xù))
1.鏡像層最小化
-使用輕量級基礎(chǔ)鏡像(如Alpine):
```dockerfile
FROMalpine:3.14
RUNapkadd--no-cachenginx
EXPOSE80
CMD["nginx","-g","daemonoff;"]
```
-去除不必要的包可進一步減小鏡像體積。
2.網(wǎng)絡(luò)隔離(自定義網(wǎng)絡(luò))
-示例:限制容器訪問外部網(wǎng)絡(luò)(僅DNS解析):
```yaml
version:'3'
services:
web:
image:my-app
networks:
-my-net
security_opt:
-no-new-privileges:true
networks:
my-net:
driver:bridge
ipam:
config:
-subnet:/16
```
3.秘密管理(Secrets)
-避免將敏感信息(如API密鑰)硬編碼在配置文件中。
-使用DockerSecrets(需DockerSwarm模式):
```yaml
version:'3.7'
secrets:
db-password:
external:true
services:
db:
image:postgres
environment:
POSTGRES_PASSWORD:${POSTGRES_PASSWORD}
secrets:
-db-password
```
-注意:Secrets功能需集群環(huán)境支持。
4.容器運行時安全
-禁用不必要的容器功能:
```bash
dockerrun--security-opt=seccomp:unconfined--security-opt=apparmor:unconfinedmy-app
```
-推薦使用`apparmor`或`seccomp`限制容器權(quán)限(需系統(tǒng)支持)。
七、常見問題排查(續(xù))
(五)資源耗盡問題
1.CPU過載
-查看容器CPU使用率:
```bash
dockerstats--no-stream--format"{{.Name}}:{{.CPUUsage}}\n"
```
-限制CPU核心數(shù):
```bash
dockerrun--namemy-app-d--cpus="0.75"my-app-image
```
2.內(nèi)存不足
-檢查OOM(OutOfMemory)日志:
```bash
journalctl-udocker|grepOOM
```
-設(shè)置內(nèi)存限制:
```bash
dockerrun--namemy-app-d--memory="512M"my-app-image
```
(六)網(wǎng)絡(luò)連接異常
1.端口沖突
-檢查宿主機端口占用:
```bash
sudolsof-i:80
```
-修改容器端口映射:
```bash
dockerrun--namemy-app-d-p8080:80my-app-image
```
2.DNS解析失敗
-查看容器DNS配置:
```bash
dockerexecmy-appcat/etc/resolv.conf
```
-手動修改DNS:
```bash
dockerrun--namemy-app-d-eDNS=my-app-image
```
(七)鏡像構(gòu)建失敗
1.多階段構(gòu)建錯誤
-常見問題:`CMD`/`ENTRYPOINT`與工作目錄沖突。
-解決方案:確保`WORKDIR`在構(gòu)建階段定義。
```dockerfile
FROMnode:14ASbuilder
WORKDIR/app
COPYpackage.json.
RUNnpminstall
COPY..
FROMnginx:alpine
WORKDIR/usr/share/nginx/html
COPY--from=builder/app/build./
```
2.依賴缺失
-處理`MissingDependency`錯誤:
```bash
RUNapt-getupdate&&apt-getinstall-y--no-install-recommends<package>
```
-清理緩存:
```bash
dockerbuild--no-cache-tmy-app.
```
八、自動化運維
(一)CI/CD集成
1.Jenkins流水線示例
-Docker構(gòu)建任務(wù):
```groovy
pipeline{
agentany
stages{
stage('Build'){
steps{
script{
sh'dockerbuild-tmy-app:${env.BUILD_NUMBER}.'
dockertagmy-app:${env.BUILD_NUMBER}my-app:latest
}
}
}
stage('Push'){
steps{
script{
withCredentials([usernamePassword(credentialsId:'docker-hub',usernameVariable:'USERNAME',passwordVariable:'PASSWORD')]){
sh'dockerlogin-u$USERNAME-p$PASSWORD'
sh'dockerpushmy-app:latest'
}
}
}
}
}
}
```
2.GitLabCI配置
-`.gitlab-ci.yml`示例:
```yaml
stages:
-build
-deploy
build:
stage:build
script:
-dockerbuild-tmy-app.
-dockertagmy-app:latest/my-app:latest
artifacts:
paths:
-Dockerfile
deploy:
stage:deploy
script:
-dockerlogin-u$CI_REGISTRY_USER-p$CI_REGISTRY_PASSWORD
-dockerpush/my-app:latest
```
(二)監(jiān)控自動化
1.Prometheus+Grafana集成
-容器化部署:
```yaml
version:'3'
services:
prometheus:
image:prom/prometheus
volumes:
-./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image:grafana/grafana
environment:
-GF_SECURITY_ADMIN_USER=admin
-GF_SECURITY_ADMIN_PASSWORD=yourpassword
volumes:
-grafana-provisioning:/etc/grafana/provisioning
volumes:
grafana-provisioning:
```
-`prometheus.yml`配置:
```yaml
scrape_configs:
-job_name:'docker'
static_configs:
-targets:['localhost:9300']
```
2.Alertmanager告警
-配置文件示例:
```yaml
route:
group_by:['job']
group_interval:3m
repeat_interval:1h
routes:
-match:
group_by:['job']
type:'query'
action:
send_to:'default'
-match:
group_by:['alertname']
type:'query'
action:
send_to:'webhook'
notifications:
-name:'webhook'
route:
group_by:['alertname']
interval:5m
send_resolved:true
payload:
title:'Alert:{{$labels.alertname}}'
message:'{{$labels.message}}'
http_api:
url:''
```
(三)備份與恢復(fù)策略
1.容器數(shù)據(jù)備份
-使用`rsync`遠程備份:
```bash
dockerrun--namersync-backup-v/path/to/data:/data-v/path/to/backup:/backupalpinersync-avz/data/user@remote:/remote/data
```
-定時任務(wù)(`cron`):
```bash
02dockerrun--namersync-backup-v/path/to/data:/data-v/path/to/backup:/backupalpinersync-avz/data/user@remote:/remote/data
```
2.容器狀態(tài)恢復(fù)
-備份鏡像:
```bash
dockersavemy-app>my-app.tar
```
-恢復(fù)鏡像:
```bash
dockerload<my-app.tar
docker-composeup-d
```
-推薦方案:使用數(shù)據(jù)庫備份(如PostgreSQL的`pg_dump`)或配置管理工具(Ansible、SaltStack)。
九、最佳實踐總結(jié)
1.鏡像構(gòu)建
-堅持多階段構(gòu)建,僅包含運行所需文件。
-定期更新基礎(chǔ)鏡像(如Node.js、Alpine)。
2.網(wǎng)絡(luò)配置
-使用自定義網(wǎng)絡(luò)而非默認橋接。
-關(guān)閉容器主機網(wǎng)絡(luò)訪問(`--network=none`)。
3.日志管理
-統(tǒng)一日志格式(JSON)。
-避免直接輸出到標準輸出(可能丟失)。
4.資源限制
-所有容器默認限制CPU與內(nèi)存。
-使用`--memory-swap`避免OOM時進程被殺。
5.更新策略
-使用DockerCompose的`depends_on`保證依賴順序。
-避免同時更新多個關(guān)鍵服務(wù)。
6.安全原則
-基礎(chǔ)鏡像最小化。
-敏感信息使用Secrets管理。
7.監(jiān)控優(yōu)先
-部署初期集成Prometheus。
-配置合理的告警閾值。
一、概述
本細則旨在提供Linux系統(tǒng)下應(yīng)用容器部署的標準化流程和操作指南。通過遵循本細則,用戶能夠高效、安全地完成應(yīng)用容器的部署與管理,確保系統(tǒng)資源的合理利用和應(yīng)用的穩(wěn)定運行。本細則涵蓋了從環(huán)境準備到容器運行的各個關(guān)鍵環(huán)節(jié),適用于具備基本Linux操作知識的用戶。
---
二、環(huán)境準備
在開始容器部署之前,需確保具備以下基礎(chǔ)環(huán)境:
(一)硬件與操作系統(tǒng)要求
1.硬件要求
-服務(wù)器配置建議:CPU不低于4核,內(nèi)存不低于8GB,存儲空間不低于100GB(根據(jù)應(yīng)用規(guī)模調(diào)整)。
-操作系統(tǒng):CentOS7.x或Ubuntu18.04及以上版本。
2.網(wǎng)絡(luò)要求
-確保服務(wù)器具備穩(wěn)定的網(wǎng)絡(luò)連接,推薦使用IPv4或IPv6。
-防火墻需開放必要的端口(如22/TCP用于SSH,80/TCP用于HTTP等)。
(二)軟件依賴安裝
1.基礎(chǔ)軟件包
-使用以下命令安裝:
```bash
sudoapt-getupdate&&sudoapt-getinstall-ydocker.io
```
-安裝完成后啟動并設(shè)置開機自啟:
```bash
sudosystemctlstartdocker
sudosystemctlenabledocker
```
2.鏡像管理工具(可選)
-安裝Podman(替代Docker的輕量級方案):
```bash
sudoapt-getinstall-ypodman
```
---
三、容器部署流程
(一)基礎(chǔ)容器部署
1.拉取官方鏡像
-示例:拉取Nginx鏡像:
```bash
dockerpullnginx:latest
```
2.運行容器
-基礎(chǔ)運行命令:
```bash
dockerrun--namemy-nginx-d-p80:80nginx
```
-參數(shù)說明:`--name`設(shè)置容器名,`-d`后臺運行,`-p`端口映射。
3.驗證部署
-訪問映射端口(如`http://<服務(wù)器IP>`),確認服務(wù)正常。
(二)自定義配置部署
1.準備配置文件
-將自定義配置文件(如Nginx的`nginx.conf`)放入本地目錄。
2.掛載配置文件
-運行命令:
```bash
dockerrun--namemy-nginx-d-p80:80-v/path/to/nginx.conf:/etc/nginx/nginx.confnginx
```
3.數(shù)據(jù)卷掛載(持久化)
-示例:掛載日志目錄:
```bash
dockerrun--namemy-nginx-d-p80:80-v/var/log/nginx:/var/log/nginxnginx
```
(三)多容器網(wǎng)絡(luò)配置
1.創(chuàng)建自定義網(wǎng)絡(luò)
-命令:
```bash
dockernetworkcreatemy-net
```
2.容器加入網(wǎng)絡(luò)
-運行時指定網(wǎng)絡(luò):
```bash
dockerrun--namedb-container-d--networkmy-netpostgres
```
3.容器間通信
-示例:容器A(IP:)訪問容器B(IP:):
```bash
curl:80
```
---
四、高級部署技巧
(一)鏡像構(gòu)建與優(yōu)化
1.編寫Dockerfile
-示例(基礎(chǔ)Web應(yīng)用):
```dockerfile
FROMnode:14
WORKDIR/app
COPYpackage.json.
RUNnpminstall
COPY..
EXPOSE3000
CMD["npm","start"]
```
2.構(gòu)建鏡像
-命令:
```bash
dockerbuild-tmy-web-app.
```
3.多階段構(gòu)建(優(yōu)化鏡像大?。?/p>
-示例:分離構(gòu)建環(huán)境與運行環(huán)境:
```dockerfile
Stage1:Build
FROMnode:14ASbuilder
...
Stage2:Runtime
FROMnginx:alpine
COPY--from=builder/app/build/usr/share/nginx/html
...
```
(二)容器編排
1.使用DockerCompose
-編寫`docker-compose.yml`:
```yaml
version:'3'
services:
web:
image:my-web-app
ports:
-"80:3000"
depends_on:
-db
db:
image:postgres
environment:
POSTGRES_DB:mydb
```
2.部署命令
-啟動全部服務(wù):
```bash
docker-composeup-d
```
---
五、維護與監(jiān)控
(一)日志管理
1.查看實時日志
-命令:
```bash
dockerlogs-fmy-nginx
```
2.日志輪轉(zhuǎn)(建議使用外部工具)
-可配合`logrotate`配置文件實現(xiàn)。
(二)性能監(jiān)控
1.使用DockerStats
-命令:
```bash
dockerstats--no-stream
```
2.集成監(jiān)控工具(可選)
-如Prometheus+Grafana(需額外配置)。
(三)容器更新與回滾
1.更新鏡像
-命令:
```bash
docker-composepull
docker-composeup-d--force-recreate
```
2.回滾到舊版本
-刪除當(dāng)前容器并重新拉取舊鏡像。
---
六、安全注意事項
1.鏡像安全掃描
-使用`Trivy`掃描鏡像漏洞:
```bash
trivyimagemy-web-app
```
2.最小權(quán)限原則
-運行容器時避免使用root用戶(如`--user1000:1000`)。
3.網(wǎng)絡(luò)隔離
-優(yōu)先使用自定義網(wǎng)絡(luò)而非默認橋接網(wǎng)絡(luò)。
---
七、常見問題排查
(一)連接失敗
1.檢查端口映射
-確認`dockerps`中的`PORTS`列是否正確。
2.網(wǎng)絡(luò)問題
-使用`dockernetworkinspect`檢查網(wǎng)絡(luò)配置。
(二)資源不足
1.查看系統(tǒng)負載
-命令:
```bash
top
```
2.限制容器資源
-示例:限制CPU與內(nèi)存:
```bash
dockerrun--namemy-app-d--cpus="0.5"--memory="256M"my-app-image
```
---
五、維護與監(jiān)控(續(xù))
(三)容器更新與回滾(續(xù))
1.滾動更新(DockerCompose)
-在`docker-compose.yml`中配置服務(wù)依賴關(guān)系,實現(xiàn)滾動更新。
-示例:更新`web`服務(wù)(不影響`db`服務(wù)):
```yaml
version:'3'
services:
web:
image:my-web-app:latest
ports:
-"80:3000"
depends_on:
-db
restart:always
db:
image:postgres:latest
environment:
POSTGRES_DB:mydb
restart:always
```
-更新命令:
```bash
docker-composepull
docker-composeup-d--force-recreate
```
-注意:`depends_on`僅保證啟動順序,不等待服務(wù)就緒。
2.回滾到特定版本
-方法一:手動刪除當(dāng)前容器并拉取舊鏡像。
```bash
docker-composedown
docker-composepull
docker-composeup-d--build
```
-方法二:使用版本控制工具(如Git)管理Dockerfile,通過切換分支回滾。
(四)容器存儲管理
1.綁定掛載(BindMount)
-示例:掛載宿主機目錄到容器:
```bash
dockerrun--namemy-app-d-v/host/data:/container/datamy-app-image
```
-優(yōu)點:數(shù)據(jù)持久化,容器重啟后數(shù)據(jù)保留。
-注意:避免權(quán)限問題(如宿主機目錄權(quán)限不足)。
2.卷(Volume)管理
-創(chuàng)建獨立于宿主機的數(shù)據(jù)卷:
```bash
dockervolumecreatemy-data卷
dockerrun--namemy-app-d-vmy-data卷:/container/datamy-app-image
```
-優(yōu)點:跨容器共享,數(shù)據(jù)隔離。
3.數(shù)據(jù)卷快照與恢復(fù)
-使用`dockersave`與`dockerload`備份/恢復(fù)數(shù)據(jù)卷(適用于簡單場景)。
```bash
dockersavemy-data卷>my-data.tar
dockerload<my-data.tar
```
-推薦方案:結(jié)合外部存儲(如NFS、Ceph)或數(shù)據(jù)庫自帶的備份功能。
(五)日志聚合與分析
1.統(tǒng)一日志入口(Fluentd/Journald)
-安裝Fluentd(多語言日志收集):
```bash
dockerrun--namefluentd-d-v/var/log:/logs-v/fluentd/conf/fluent.conf:/fluentd.conffluent/fluentd:latest
```
-配置文件`fluent.conf`示例:
```xml
<sourcetype="tail">
<path>/var/log/containers</path>
<pos_file>/var/log/containers/pos</pos_file>
<tag>docker</tag>
<format>json</format>
</source>
<filterdocker>
<pattern>.</pattern>
<multi_line>no</multi_line>
<remove_tag>docker</remove_tag>
</filter>
<destinationtype="stdout"/>
```
-日志輸出到標準輸出可配合ELK堆棧(Elasticsearch,Logstash,Kibana)分析。
2.系統(tǒng)日志管理(Journald)
-使用`systemd-journald`收集內(nèi)核與系統(tǒng)日志:
```bash
dockerrun--namejournald-d--restart=always--networkhost/linux-system-automation/journald:latest
```
-配置文件需調(diào)整`/etc/systemd/journald.conf.d/99-docker.conf`:
```ini
[Journal]
SystemJournal=true
MaxRetentionDays=7
```
六、安全注意事項(續(xù))
1.鏡像層最小化
-使用輕量級基礎(chǔ)鏡像(如Alpine):
```dockerfile
FROMalpine:3.14
RUNapkadd--no-cachenginx
EXPOSE80
CMD["nginx","-g","daemonoff;"]
```
-去除不必要的包可進一步減小鏡像體積。
2.網(wǎng)絡(luò)隔離(自定義網(wǎng)絡(luò))
-示例:限制容器訪問外部網(wǎng)絡(luò)(僅DNS解析):
```yaml
version:'3'
services:
web:
image:my-app
networks:
-my-net
security_opt:
-no-new-privileges:true
networks:
my-net:
driver:bridge
ipam:
config:
-subnet:/16
```
3.秘密管理(Secrets)
-避免將敏感信息(如API密鑰)硬編碼在配置文件中。
-使用DockerSecrets(需DockerSwarm模式):
```yaml
version:'3.7'
secrets:
db-password:
external:true
services:
db:
image:postgres
environment:
POSTGRES_PASSWORD:${POSTGRES_PASSWORD}
secrets:
-db-password
```
-注意:Secrets功能需集群環(huán)境支持。
4.容器運行時安全
-禁用不必要的容器功能:
```bash
dockerrun--security-opt=seccomp:unconfined--security-opt=apparmor:unconfinedmy-app
```
-推薦使用`apparmor`或`seccomp`限制容器權(quán)限(需系統(tǒng)支持)。
七、常見問題排查(續(xù))
(五)資源耗盡問題
1.CPU過載
-查看容器CPU使用率:
```bash
dockerstats--no-stream--format"{{.Name}}:{{.CPUUsage}}\n"
```
-限制CPU核心數(shù):
```bash
dockerrun--namemy-app-d--cpus="0.75"my-app-image
```
2.內(nèi)存不足
-檢查OOM(OutOfMemory)日志:
```bash
journalctl-udocker|grepOOM
```
-設(shè)置內(nèi)存限制:
```bash
dockerrun--namemy-app-d--memory="512M"my-app-image
```
(六)網(wǎng)絡(luò)連接異常
1.端口沖突
-檢查宿主機端口占用:
```bash
sudolsof-i:80
```
-修改容器端口映射:
```bash
dockerrun--namemy-app-d-p8080:80my-app-image
```
2.DNS解析失敗
-查看容器DNS配置:
```bash
dockerexecmy-appcat/etc/resolv.conf
```
-手動修改DNS:
```bash
dockerrun--namemy-app-d-eDNS=my-app-image
```
(七)鏡像構(gòu)建失敗
1.多階段構(gòu)建錯誤
-常見問題:`CMD`/`ENTRYPOINT`與工作目錄沖突。
-解決方案:確保`WORKDIR`在構(gòu)建階段定義。
```dockerfile
FROMnode:14ASbuilder
WORKDIR/app
COPYpackage.json.
RUNnpminstall
COPY..
FROMnginx:alpine
WORKDIR/usr/share/nginx/html
COPY--from=builder/app/build./
```
2.依賴缺失
-處理`MissingDependency`錯誤:
```bash
RUNapt-getupdate&&apt-getinstall-y--no-install-recommends<package>
```
-清理緩存:
```bash
dockerbuild--no-cache-tmy-app.
```
八、自動化運維
(一)CI/CD集成
1.Jenkins流水線示例
-Docker構(gòu)建任務(wù):
```groovy
pipeline{
agentany
stages{
stage('Build'){
steps{
script{
sh'dockerbuild-tmy-app:${env.BUILD_NUMBER}.'
dockertagmy-app:${env.BUILD_NUMBER}my-app:latest
}
}
}
stage('Push'){
steps{
script{
withCredentials([usernamePassword(credentialsId:'docker-hub',usernameVariable:'USERNAME',passwordVariable:'PASSWORD')]){
sh'dockerlogin-u$USERNAME-p$PASSWORD'
sh'dockerpushmy-app:latest'
}
}
}
}
}
}
```
2.GitLabCI配置
-`.gitlab-ci.yml`示例:
```yaml
stages:
-build
-deploy
build:
stage:build
script:
-dockerbuild-tmy-app.
-dockertagmy-app:latest/my-app:latest
artifacts:
paths:
-Dockerfile
deploy:
stage:deploy
script:
-dockerlogin-u$CI_REGISTRY_USER-p$CI_REGISTRY_PASSWORD
-dockerpush/my-app:latest
```
(二)監(jiān)控自動化
1.Prometheus+Grafana集成
-容器化部署:
```yaml
version:'3'
services:
prometheus:
image:prom/prometheus
volumes:
-./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image:grafana/grafana
environment:
-GF_SECURITY_ADMIN_USER=admin
-GF_SECURITY_ADMIN_PASSWORD=yourpassword
volumes:
-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店布草洗滌管理流程及注意點
- 電子商務(wù)平臺賣家運營指導(dǎo)手冊
- 新媒體平臺用戶分層模型
- 新外研版中學(xué)英語語法強化練習(xí)集
- 酒店節(jié)能減排管理辦法及措施
- 極地深海熱液活動
- 高考語文詞語選擇題專項訓(xùn)練
- 電商平臺商品上下架及庫存管理流程
- 個人名下購車合同協(xié)議書模板
- 智能建筑弱電系統(tǒng)施工方案設(shè)計
- 北京市2025北京市體育設(shè)施管理中心應(yīng)屆畢業(yè)生招聘2人筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)2套試卷
- 建筑施工現(xiàn)場材料采購流程
- DB31∕T 1234-2020 城市森林碳匯計量監(jiān)測技術(shù)規(guī)程
- 園林綠化施工工藝及注意事項
- 2025年高中語文必修上冊《登泰山記》文言文對比閱讀訓(xùn)練(含答案)
- 2025年金蝶AI蒼穹平臺新一代企業(yè)級AI平臺報告-
- 2026屆山東菏澤一中高三化學(xué)第一學(xué)期期末達標測試試題含解析
- 2025中國機械工業(yè)集團有限公司(國機集團)社會招聘19人筆試參考題庫附答案
- 二年級上冊100以內(nèi)的數(shù)學(xué)加減混合口算題500道-A4直接打印
- 2025年二級造價師《土建工程實務(wù)》真題卷(附解析)
- 智慧農(nóng)業(yè)管理中的信息安全對策
評論
0/150
提交評論