Docker?40個(gè)實(shí)用的自動(dòng)化管理腳本
前言
Docker作為當(dāng)今最流行的容器化技術(shù),已經(jīng)徹底改變了應(yīng)用程序的部署和管理方式。然而,隨著項(xiàng)目規(guī)模的擴(kuò)大和容器數(shù)量的增加,手動(dòng)管理容器變得越來(lái)越繁瑣且容易出錯(cuò)。本文將介紹40個(gè)實(shí)用的自動(dòng)化腳本,涵蓋容器生命周期管理、資源監(jiān)控、數(shù)據(jù)備份恢復(fù)、日志清理等各個(gè)方面,幫助開(kāi)發(fā)者和運(yùn)維人員提升效率,減少人為錯(cuò)誤,構(gòu)建更加健壯的Docker環(huán)境。
1. 自動(dòng)化容器創(chuàng)建腳本
#!/bin/bash IMAGE_NAME="nginx"CONTAINER_NAME="my_nginx"PORT_MAPPING="8080:80"ENV_VARS="ENV=production" docker run -d --name $CONTAINER_NAME -p $PORT_MAPPING -e $ENV_VARS $IMAGE_NAME
腳本通過(guò)預(yù)定義配置自動(dòng)創(chuàng)建容器,使用 -d 參數(shù)以分離模式運(yùn)行,–name 指定容器名稱(chēng),-p 映射端口,-e 設(shè)置環(huán)境變量。只需修改頂部變量即可快速創(chuàng)建不同配置的容器。
2. 批量啟動(dòng)所有容器
#!/bin/bash docker start $(docker ps -aq)
此腳本通過(guò) docker ps -aq 獲取所有容器ID(包括停止的),然后使用 docker start 批量啟動(dòng),特別適合系統(tǒng)重啟或維護(hù)后快速恢復(fù)服務(wù)。
3. 批量停止運(yùn)行中容器
#!/bin/bash docker stop $(docker ps -q)
與啟動(dòng)腳本對(duì)應(yīng),docker ps -q 只列出運(yùn)行中容器ID,docker stop 命令批量停止這些容器,適合需要快速關(guān)閉所有服務(wù)的場(chǎng)景。
4. 批量刪除停止的容器
#!/bin/bash docker rm $(docker ps -aq -f "status=exited")
通過(guò) docker ps -aq -f “status=exited” 過(guò)濾出已停止的容器,然后使用 docker rm 刪除它們,釋放系統(tǒng)資源。
5. 運(yùn)行容器并在退出后自動(dòng)清理
#!/bin/bash IMAGE_NAME=$1 docker run --rm $IMAGE_NAME
使用 –rm 參數(shù)可以在容器停止后自動(dòng)刪除,非常適合執(zhí)行一次性任務(wù)的臨時(shí)容器。
6. 自動(dòng)重啟關(guān)鍵容器
#!/bin/bash CONTAINER_NAME=$1 docker update --restart always $CONTAINER_NAME
通過(guò) docker update –restart always 為關(guān)鍵容器配置重啟策略,確保它們?cè)谝馔馔V购竽茏詣?dòng)恢復(fù),增強(qiáng)服務(wù)可靠性。
7. 容器資源監(jiān)控腳本
#!/bin/bash CONTAINER_NAME="my_app" echo "資源使用情況:" docker stats --no-stream $CONTAINER_NAME echo "日志:" docker logs --tail 50 $CONTAINER_NAME
該腳本結(jié)合 docker stats –no-stream 獲取容器實(shí)時(shí)資源使用情況,以及 docker logs –tail 查看最新日志,是故障排查的利器。
8. 監(jiān)控所有容器資源使用
#!/bin/bash docker stats --all
更全面的監(jiān)控方案,–all 參數(shù)包括停止的容器,提供系統(tǒng)整體資源消耗視圖。
9. 檢查所有容器日志
#!/bin/bash
docker ps -q | xargs -I {} docker logs {}通過(guò)管道和 xargs 將運(yùn)行中容器ID傳遞給 docker logs 命令,實(shí)現(xiàn)多容器日志的統(tǒng)一查看。
10. 清理未使用資源腳本
#!/bin/bash docker system prune -f --volumes
docker system prune 是強(qiáng)大的清理工具,-f 跳過(guò)確認(rèn),–volumes 包括未使用的卷,定期運(yùn)行可釋放大量磁盤(pán)空間。
11. 刪除懸空鏡像
#!/bin/bash docker rmi $(docker images -q -f "dangling=true")
docker images -q -f “dangling=true” 列出無(wú)標(biāo)簽的懸空鏡像,docker rmi 刪除它們,避免占用存儲(chǔ)空間。
12. 容器數(shù)據(jù)備份腳本
#!/bin/bash CONTAINER_NAME="my_app" BACKUP_DIR="/backup" TIMESTAMP=$(date +%F) docker cp $CONTAINER_NAME:/data $BACKUP_DIR/$CONTAINER_NAME-backup-$TIMESTAMP
使用 docker cp 將容器內(nèi)數(shù)據(jù)復(fù)制到主機(jī)備份目錄,并添加時(shí)間戳便于管理??赏ㄟ^(guò)cron定時(shí)執(zhí)行,如 0 2 * * * /path/to/backup_script.sh 實(shí)現(xiàn)每日自動(dòng)備份。
13. 容器文件系統(tǒng)完整備份
#!/bin/bash
CONTAINER_ID=$1
BACKUP_FILE="${CONTAINER_ID}_backup_$(date +%F).tar"
docker export $CONTAINER_ID > $BACKUP_FILEdocker export 導(dǎo)出整個(gè)容器文件系統(tǒng)到tar文件,比單純數(shù)據(jù)備份更完整。
14. 從備份恢復(fù)容器
#!/bin/bash BACKUP_FILE=$1 docker import $BACKUP_FILE restored_container:latest
與導(dǎo)出對(duì)應(yīng),docker import 從tar備份創(chuàng)建新鏡像,可用于啟動(dòng)恢復(fù)后的容器。
15. 數(shù)據(jù)卷備份到S3
#!/bin/bash
BACKUP_PATH="/path/to/backup"
S3_BUCKET="s3://your-bucket-name/docker-volumes/"
MAX_BACKUPS=5
mkdir -p "$BACKUP_PATH"
docker run --rm -v "$BACKUP_PATH:/backup" alpine tar czf /backup/backup-$(date +%Y%m%d%H%M%S).tar.gz /var/lib/docker/volumes/
aws s3 cp "/backup/backup-$(date +%Y%m%d%H%M%S).tar.gz" "$S3_BUCKET"
find "$BACKUP_PATH" -type f -name 'backup-*' -mtime +$MAX_BACKUPS -exec rm {} \;腳本將數(shù)據(jù)卷打包壓縮后上傳到S3,并自動(dòng)清理舊備份,實(shí)現(xiàn)了異地容災(zāi)。
16. Docker網(wǎng)絡(luò)管理腳本
#!/bin/bash NETWORK_NAME="custom_bridge" docker network create $NETWORK_NAME docker network connect $NETWORK_NAME my_container
使用 docker network create 創(chuàng)建自定義網(wǎng)絡(luò),docker network connect 將容器接入網(wǎng)絡(luò),適合構(gòu)建隔離的微服務(wù)環(huán)境。
17. 列出所有容器暴露端口
#!/bin/bash
docker ps --format '{{.ID}}: {{.Ports}}'自定義格式輸出容器ID和暴露端口,快速了解服務(wù)訪問(wèn)端點(diǎn)。
18. 更新運(yùn)行中容器
#!/bin/bash
CONTAINER_NAME=$1
IMAGE_NAME=$(docker inspect --format='{{.Config.Image}}' $CONTAINER_NAME)
docker pull $IMAGE_NAME
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
docker run -d --name $CONTAINER_NAME $IMAGE_NAME通過(guò) docker inspect 獲取容器鏡像名,拉取最新鏡像后重新創(chuàng)建容器,實(shí)現(xiàn)無(wú)縫更新。
19. 手動(dòng)清理容器日志
#!/bin/bash
find /var/lib/docker/containers/ -name "*.log" -exec stat {} \;
find /var/lib/docker/containers/ -name "*.log" -mtime +7 -exec rm -f {} \;第一條命令查看日志文件大小和修改時(shí)間,第二條刪除7天前的日志文件,有效釋放空間。
20. 設(shè)置日志大小限制
#!/bin/bash
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
}
}
EOF
systemctl restart docker通過(guò)修改daemon.json配置文件,限制單個(gè)日志文件最大50MB,最多保留3個(gè),從根本上防止日志膨脹。
21. 智能容器啟??刂颇_本
腳本通過(guò)參數(shù)化設(shè)計(jì)實(shí)現(xiàn)了對(duì)容器狀態(tài)的精確控制,可以根據(jù)傳入?yún)?shù)決定是啟動(dòng)、停止還是重啟容器集群。相比簡(jiǎn)單的批量操作,增加了狀態(tài)檢查邏輯,確保操作的安全性和可靠性。
#!/bin/bash
# 參數(shù): start|stop|restart
ACTION=$1
case $ACTION in
start)
echo "啟動(dòng)所有停止的容器..."
docker start $(docker ps -aq --filter "status=exited")
;;
stop)
echo "停止所有運(yùn)行中的容器..."
docker stop $(docker ps -q)
;;
restart)
echo "重啟所有容器..."
docker restart $(docker ps -q)
;;
*)
echo "用法: $0 {start|stop|restart}"
exit 1
esac22. 條件式容器清理腳本
傳統(tǒng)的清理腳本往往一刀切地刪除所有停止的容器,而這個(gè)增強(qiáng)版腳本可以基于時(shí)間條件進(jìn)行清理,保留最近使用過(guò)的容器。
#!/bin/bash
# 清理超過(guò)7天未使用的停止容器
docker ps -a --filter "status=exited" --format '{{.ID}} {{.CreatedAt}}' | while read -r id date; do
if [[ $(date -d "$date" +%s) -lt $(date -d "7 days ago" +%s) ]]; then
docker rm $id
echo "已刪除容器 $id (創(chuàng)建于 $date)"
fi
done23. 容器健康狀態(tài)重啟腳本
腳本會(huì)定期檢查容器的健康狀態(tài),當(dāng)檢測(cè)到容器異常時(shí)自動(dòng)重啟,特別適合用于關(guān)鍵業(yè)務(wù)容器。
#!/bin/bash
CONTAINER_NAME=$1
# 獲取容器健康狀態(tài)
HEALTH=$(docker inspect --format='{{.State.Health.Status}}' $CONTAINER_NAME)
if [ "$HEALTH" != "healthy" ]; then
echo "$(date) - 容器 $CONTAINER_NAME 狀態(tài)異常 ($HEALTH),執(zhí)行重啟..."
docker restart $CONTAINER_NAME
fi24. 容器配置自動(dòng)更新腳本
當(dāng)容器配置發(fā)生變化時(shí),腳本可以自動(dòng)檢測(cè)并重新創(chuàng)建容器,確保配置及時(shí)生效。
#!/bin/bash
CONTAINER_NAME="my_app"
CONFIG_FILE="/path/to/app.conf"
CONFIG_HASH=$(md5sum $CONFIG_FILE | awk '{print $1}')
# 檢查配置是否變化
if [ "$CONFIG_HASH" != "$(docker inspect --format='{{.Config.Labels.config_hash}}' $CONTAINER_NAME)" ]; then
echo "檢測(cè)到配置變化,重新創(chuàng)建容器..."
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
docker run -d --name $CONTAINER_NAME --label config_hash=$CONFIG_HASH -v $CONFIG_FILE:/etc/app.conf my_app_image
fi25. 容器依賴關(guān)系啟動(dòng)腳本
對(duì)于有啟動(dòng)順序要求的容器組,腳本確保依賴容器先啟動(dòng),解決了復(fù)雜微服務(wù)架構(gòu)中的啟動(dòng)順序問(wèn)題。
#!/bin/bash
# 定義容器啟動(dòng)順序
CONTAINERS=("db" "redis" "app" "nginx")
for container in "${CONTAINERS[@]}"; do
echo "啟動(dòng)容器 $container..."
docker start $container
# 等待容器健康檢查通過(guò)
while [ "$(docker inspect --format='{{.State.Health.Status}}' $container)" != "healthy" ]; do
sleep 1
done
done26. 智能鏡像垃圾回收腳本
腳本不僅刪除懸空鏡像,還能根據(jù)使用頻率和大小智能保留常用鏡像。
#!/bin/bash
# 刪除超過(guò)30天未被使用的懸空鏡像
docker images --filter "dangling=true" --format "{{.ID}} {{.CreatedSince}}" | while read -r id time; do
if [[ $time == *"months"* ]] || [[ $time == *"weeks"* ]]; then
docker rmi $id
echo "已刪除懸空鏡像 $id (創(chuàng)建于 $time)"
fi
done27. 磁盤(pán)空間預(yù)警清理腳本
當(dāng)Docker磁盤(pán)使用率達(dá)到閾值時(shí),自動(dòng)觸發(fā)清理操作,防止磁盤(pán)寫(xiě)滿導(dǎo)致服務(wù)中斷。
#!/bin/bash
THRESHOLD=80
USAGE=$(df --output=pcent /var/lib/docker | tr -dc '0-9')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Docker磁盤(pán)使用率已達(dá) ${USAGE}%,執(zhí)行清理..."
docker system prune -af --volumes
fi28. 按策略保留備份腳本
在清理前自動(dòng)備份重要容器數(shù)據(jù),確保不會(huì)因清理操作導(dǎo)致數(shù)據(jù)丟失。
#!/bin/bash
BACKUP_DIR="/docker_backups/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
# 備份所有運(yùn)行中容器的數(shù)據(jù)卷
docker ps --format '{{.Names}}' | while read -r name; do
docker inspect --format='{{range .Mounts}}{{.Destination}} {{end}}' $name | tr ' ' '\n' | while read -r vol; do
[ -n "$vol" ] && docker cp $name:$vol $BACKUP_DIR/${name}_$(echo $vol | tr '/' '_')
done
done
# 執(zhí)行清理
docker system prune -af29. 資源使用限制檢查腳本
檢查容器資源限制配置,防止單個(gè)容器占用過(guò)多資源影響系統(tǒng)穩(wěn)定性。
#!/bin/bash
# 檢查沒(méi)有設(shè)置內(nèi)存限制的容器
docker ps --format '{{.Names}}' | while read -r name; do
if [ -z "$(docker inspect --format='{{.HostConfig.Memory}}' $name)" ]; then
echo "警告: 容器 $name 沒(méi)有設(shè)置內(nèi)存限制!"
fi
done30. 容器資源配額調(diào)整腳本
根據(jù)當(dāng)前系統(tǒng)負(fù)載動(dòng)態(tài)調(diào)整容器資源配額,實(shí)現(xiàn)資源的彈性分配。
#!/bin/bash
CONTAINER_NAME=$1
# 獲取系統(tǒng)可用內(nèi)存
AVAIL_MEM=$(free -m | awk '/Mem:/ {print $7}')
# 分配可用內(nèi)存的50%給容器
MEM_LIMIT=$((AVAIL_MEM / 2))m
echo "調(diào)整容器 $CONTAINER_NAME 內(nèi)存限制為 $MEM_LIMIT"
docker update --memory=$MEM_LIMIT --memory-swap=$MEM_LIMIT $CONTAINER_NAME31. 容器綜合監(jiān)控儀表腳本
腳本提供了一個(gè)簡(jiǎn)潔的監(jiān)控面板,展示所有容器的關(guān)鍵指標(biāo),比單純的 docker stats 更直觀。
#!/bin/bash
echo "容器綜合監(jiān)控儀表板"
echo "===================="
docker ps --format "{{.Names}}" | while read -r name; do
CPU=$(docker stats --no-stream --format "{{.CPUPerc}}" $name)
MEM=$(docker stats --no-stream --format "{{.MemPerc}}" $name)
STATUS=$(docker inspect --format "{{.State.Status}}" $name)
HEALTH=$(docker inspect --format "{{.State.Health.Status}}" $name 2>/dev/null || echo "N/A")
printf "%-20s %-10s %-10s %-10s %-10s\n" "$name" "$STATUS" "$HEALTH" "$CPU" "$MEM"
done32. 異常日志實(shí)時(shí)報(bào)警腳本
監(jiān)控容器日志,當(dāng)檢測(cè)到錯(cuò)誤關(guān)鍵詞時(shí)立即觸發(fā)報(bào)警,支持多種報(bào)警方式。
#!/bin/bash
CONTAINER_NAME=$1
KEYWORDS="error|fail|exception|timeout"
docker logs --since 5m --follow $CONTAINER_NAME | while read -r line; do
if echo "$line" | grep -qE "$KEYWORDS"; then
echo "$(date) - 檢測(cè)到異常日志: $line"
# 這里可以集成郵件、釘釘、Slack等報(bào)警方式
fi
done33. 容器網(wǎng)絡(luò)連通性測(cè)試腳本
定期檢查容器間的網(wǎng)絡(luò)連通性,及時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)分區(qū)等異常情況。
#!/bin/bash
# 測(cè)試所有容器之間的網(wǎng)絡(luò)連通性
CONTAINERS=$(docker ps --format "{{.Names}}")
for src in $CONTAINERS; do
for dst in $CONTAINERS; do
if [ "$src" != "$dst" ]; then
if docker exec $src ping -c 1 $dst >/dev/null 2>&1; then
echo "$src -> $dst: 連通"
else
echo "$src -> $dst: 不通"
fi
fi
done
done34. 容器資源閾值報(bào)警腳本
當(dāng)容器資源使用超過(guò)閾值時(shí)發(fā)送報(bào)警,支持動(dòng)態(tài)調(diào)整閾值。
#!/bin/bash
CONTAINER_NAME=$1
CPU_THRESHOLD=80
MEM_THRESHOLD=80
while true; do
CPU=$(docker stats --no-stream --format "{{.CPUPerc}}" $CONTAINER_NAME | tr -d '%')
MEM=$(docker stats --no-stream --format "{{.MemPerc}}" $CONTAINER_NAME | tr -d '%')
if (( $(echo "$CPU > $CPU_THRESHOLD" | bc -l) )); then
echo "$(date) - CPU使用率過(guò)高: ${CPU}%"
fi
if (( $(echo "$MEM > $MEM_THRESHOLD" | bc -l) )); then
echo "$(date) - 內(nèi)存使用率過(guò)高: ${MEM}%"
fi
sleep 60
done35. 容器安全漏洞掃描腳本
定期檢查運(yùn)行容器使用的鏡像是否存在已知漏洞,提升環(huán)境安全性。
#!/bin/bash
# 檢查所有運(yùn)行中容器使用的鏡像
docker ps --format "{{.Image}} {{.Names}}" | while read -r image name; do
echo "掃描容器 $name (使用鏡像 $image)..."
docker scan --file Dockerfile $image
# 檢查鏡像更新時(shí)間
CREATED=$(docker inspect --format '{{.Created}}' $image)
if [[ $(date -d "$CREATED" +%s) -lt $(date -d "6 months ago" +%s) ]]; then
echo "警告: 容器 $name 使用的鏡像超過(guò)6個(gè)月未更新!"
fi
done36. 容器數(shù)據(jù)增量備份腳本
相比簡(jiǎn)單的全量備份,這個(gè)腳本實(shí)現(xiàn)了增量備份策略,節(jié)省存儲(chǔ)空間。
#!/bin/bash
CONTAINER_NAME=$1
BACKUP_DIR="/backups/$CONTAINER_NAME"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
# 創(chuàng)建備份目錄
mkdir -p $BACKUP_DIR
# 使用rsync實(shí)現(xiàn)增量備份
docker exec $CONTAINER_NAME sh -c "tar cf - /data" | \
rsync --archive --backup --backup-dir=$BACKUP_DIR/$TIMESTAMP - /backups/latest/
# 保留最近7天的備份
find $BACKUP_DIR -type d -mtime +7 | xargs rm -rf37. 容器數(shù)據(jù)庫(kù)自動(dòng)轉(zhuǎn)儲(chǔ)腳本
針對(duì)數(shù)據(jù)庫(kù)容器的備份方案,支持MySQL、PostgreSQL等常見(jiàn)數(shù)據(jù)庫(kù)。
#!/bin/bash
DB_CONTAINER=$1
DB_TYPE=$2 # mysql or postgres
BACKUP_FILE="/backups/${DB_CONTAINER}_$(date +%Y%m%d).sql"
case $DB_TYPE in
mysql)
docker exec $DB_CONTAINER sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > $BACKUP_FILE
;;
postgres)
docker exec $DB_CONTAINER sh -c 'pg_dumpall -U postgres' > $BACKUP_FILE
;;
*)
echo "不支持的數(shù)據(jù)庫(kù)類(lèi)型"
exit 1
esac
echo "數(shù)據(jù)庫(kù)備份完成: $BACKUP_FILE"38. 容器數(shù)據(jù)一致性檢查腳本
驗(yàn)證備份數(shù)據(jù)的完整性和一致性,確保備份可恢復(fù)。
#!/bin/bash
BACKUP_FILE=$1
# 模擬恢復(fù)備份并檢查關(guān)鍵文件
TEMP_CONTAINER=$(docker run -d --rm busybox tail -f /dev/null)
docker cp $BACKUP_FILE $TEMP_CONTAINER:/backup.tar
docker exec $TEMP_CONTAINER tar xf /backup.tar
# 檢查關(guān)鍵文件是否存在
CHECK_FILES=("etc/passwd" "etc/group" "data/app.conf")
for file in "${CHECK_FILES[@]}"; do
if docker exec $TEMP_CONTAINER [ -f "/$file" ]; then
echo "檢查通過(guò): /$file 存在"
else
echo "警告: /$file 不存在!"
fi
done
docker stop $TEMP_CONTAINER39. 跨主機(jī)容器數(shù)據(jù)同步腳本
實(shí)現(xiàn)容器數(shù)據(jù)在多主機(jī)間的同步,支持災(zāi)備和多活部署。
#!/bin/bash SOURCE_CONTAINER=$1 DEST_HOST=$2 DEST_CONTAINER=$3 # 創(chuàng)建數(shù)據(jù)快照并同步到遠(yuǎn)程主機(jī) docker exec $SOURCE_CONTAINER tar cf - /data | ssh $DEST_HOST "docker exec -i $DEST_CONTAINER tar xf - -C /" echo "數(shù)據(jù)同步完成: $SOURCE_CONTAINER -> $DEST_HOST:$DEST_CONTAINER"
40. 容器數(shù)據(jù)加密備份腳本
在備份時(shí)自動(dòng)加密敏感數(shù)據(jù),確保數(shù)據(jù)安全。
#!/bin/bash
CONTAINER_NAME=$1
BACKUP_FILE="/backups/${CONTAINER_NAME}_$(date +%Y%m%d).tar.gpg"
ENCRYPT_KEY="your_encryption_key"
# 備份并加密數(shù)據(jù)
docker exec $CONTAINER_NAME tar cf - /data | \
gpg --batch --yes --passphrase "$ENCRYPT_KEY" --symmetric --cipher-algo AES256 -o $BACKUP_FILE
echo "加密備份完成: $BACKUP_FILE"自動(dòng)化不是目標(biāo)而是手段,本文介紹的Docker自動(dòng)化管理腳本從基礎(chǔ)的啟停操作到高級(jí)的監(jiān)控報(bào)警,從簡(jiǎn)單的資源清理到復(fù)雜的數(shù)據(jù)備份策略。通過(guò)合理部署、調(diào)度和維護(hù)這些自動(dòng)化腳本,可以構(gòu)建一個(gè)高效、可靠的Docker容器管理系統(tǒng),顯著提升開(kāi)發(fā)運(yùn)維效率,減少重復(fù)性手動(dòng)操作、提高環(huán)境一致性,同時(shí)降低人為錯(cuò)誤的風(fēng)險(xiǎn)。
總結(jié)
到此這篇關(guān)于Docker 40個(gè)實(shí)用的自動(dòng)化管理腳本的文章就介紹到這了,更多相關(guān)Docker自動(dòng)化管理腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將docker容器打包為.tar包的實(shí)現(xiàn)方式
文章介紹了Docker鏡像打包與加載的四步流程:修改腳本中的三個(gè)關(guān)鍵變量(容器名、鏡像名、保存路徑)、執(zhí)行打包命令生成.tar文件、驗(yàn)證鏡像加載是否成功、確認(rèn)加載后的鏡像能否正常創(chuàng)建容器2025-09-09
Docker安裝Milvus的實(shí)現(xiàn)步驟
本文主要介紹了Docker安裝Milvus的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-03-03
CentOS 7.x docker使用overlay2存儲(chǔ)方式
這篇文章主要介紹了CentOS 7.x docker使用overlay2存儲(chǔ)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
SEATA事務(wù)服務(wù)DOCKER部署的過(guò)程詳解
這篇文章主要介紹了SEATA事務(wù)服務(wù)DOCKER部署的過(guò)程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
在Docker中更快地構(gòu)建Maven項(xiàng)目
本文主要介紹了在Docker中更快地構(gòu)建Maven項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
Jenkins簡(jiǎn)介與Docker部署Jenkins的方法
今天小編就為大家分享一篇關(guān)于Jenkins簡(jiǎn)介與Docker部署Jenkins的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10
啟動(dòng)桌面Docker提示虛擬服務(wù)未啟動(dòng)兩種解決方案
Docker 是?個(gè)開(kāi)源的應(yīng)用容器引擎,可以實(shí)現(xiàn)虛擬化,這篇文章主要介紹了在啟動(dòng)Docker?Desktop時(shí)遇到的錯(cuò)誤,并提供了解決方案,文中通過(guò)代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04

