最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker鏡像拉取、制作與上傳的完整指南

 更新時(shí)間:2026年04月20日 09:20:45   作者:知遠(yuǎn)漫談  
本文文章主要介紹了Docker鏡像的核心概念、實(shí)用示例以及最佳實(shí)踐,從基礎(chǔ)的鏡像拉取、制作到高級(jí)ocker安全加固、性能優(yōu)化和自動(dòng)化部署,全方位講解了Java應(yīng)用在Docker中的實(shí)戰(zhàn)應(yīng)用,并并給出了具體的操作示例和建議,需要的朋友可以參考下

在現(xiàn)代軟件開發(fā)和部署中,容器化技術(shù)已經(jīng)成為不可或缺的一部分。Docker 作為最流行的容器平臺(tái),其核心概念之一就是“鏡像”。本文將帶你深入理解 Docker 鏡像的本質(zhì),掌握在 Linux 環(huán)境下如何拉取、制作并上傳 Docker 鏡像,并結(jié)合 Java 應(yīng)用場景給出實(shí)用示例。

什么是 Docker 鏡像?

Docker 鏡像是一個(gè)輕量級(jí)、獨(dú)立的、可執(zhí)行的軟件包,它包含了運(yùn)行某個(gè)軟件所需的一切:代碼、運(yùn)行時(shí)環(huán)境、系統(tǒng)工具、系統(tǒng)庫和配置文件。鏡像采用分層結(jié)構(gòu),每一層都是只讀的,當(dāng)容器啟動(dòng)時(shí),會(huì)在鏡像之上添加一個(gè)可寫層(容器層)。

你可以把 Docker 鏡像想象成一個(gè)“應(yīng)用快照”,無論部署到哪臺(tái)機(jī)器上,只要支持 Docker,就能保證一致的運(yùn)行環(huán)境。

# 查看本地已有的鏡像
docker images

輸出示例:

REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
nginx               latest    abc123def456   2 weeks ago    142MB
hello-world         latest    def789ghi012   3 months ago   13.3kB

第一部分:拉取 Docker 鏡像

基礎(chǔ)命令:docker pull

最簡單的拉取方式是使用 docker pull 命令:

docker pull nginx:latest

這會(huì)從 Docker Hub(默認(rèn)注冊(cè)中心)拉取最新版的 Nginx 鏡像。

你也可以指定特定版本:

docker pull openjdk:17-jdk-slim

這個(gè)命令會(huì)拉取 OpenJDK 17 的精簡版鏡像,非常適合運(yùn)行 Java 應(yīng)用。

拉取私有倉庫或第三方鏡像

如果你使用的是阿里云、騰訊云等國內(nèi)鏡像加速服務(wù),或者公司內(nèi)部私有倉庫,可以這樣拉?。?/p>

docker pull registry.cn-hangzhou.aliyuncs.com/library/nginx:1.21

或者登錄后拉取私有鏡像:

docker login myregistry.example.com
docker pull myregistry.example.com/myapp:1.0.0

加速鏡像拉取 —— 配置鏡像加速器

在國內(nèi),直接訪問 Docker Hub 可能較慢。推薦配置鏡像加速器。

編輯 /etc/docker/daemon.json(若不存在則新建):

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

重啟 Docker 服務(wù):

sudo systemctl daemon-reload
sudo systemctl restart docker

驗(yàn)證是否生效:

docker info | grep -A 3 "Registry Mirrors"

實(shí)戰(zhàn):拉取 Java 運(yùn)行環(huán)境鏡像

我們來拉取一個(gè)適合運(yùn)行 Spring Boot 應(yīng)用的鏡像:

docker pull eclipse-temurin:17-jre-alpine

這個(gè)鏡像是基于 Alpine Linux 的輕量級(jí) JRE 17 鏡像,體積小,安全補(bǔ)丁更新及時(shí),是生產(chǎn)環(huán)境的理想選擇。

第二部分:制作 Docker 鏡像

制作鏡像的核心是編寫 Dockerfile —— 一個(gè)定義鏡像構(gòu)建步驟的文本文件。

編寫你的第一個(gè) Dockerfile

假設(shè)我們有一個(gè)簡單的 Java 控制臺(tái)程序:

// HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Dockerized Java World! ??");
        System.out.println("Current time: " + java.time.LocalDateTime.now());
    }
}

編譯它:

javac HelloWorld.java

現(xiàn)在創(chuàng)建 Dockerfile

# 使用官方 OpenJDK 17 JRE 鏡像作為基礎(chǔ)鏡像
FROM eclipse-temurin:17-jre-alpine

# 設(shè)置工作目錄
WORKDIR /app

# 將編譯好的 class 文件復(fù)制進(jìn)鏡像
COPY HelloWorld.class .

# 設(shè)置容器啟動(dòng)時(shí)執(zhí)行的命令
CMD ["java", "HelloWorld"]

構(gòu)建鏡像

在包含 DockerfileHelloWorld.class 的目錄下執(zhí)行:

docker build -t my-java-app:1.0 .

參數(shù)說明:

  • -t:指定鏡像名稱和標(biāo)簽
  • .:表示當(dāng)前目錄為構(gòu)建上下文(context)

構(gòu)建成功后,查看鏡像:

docker images | grep my-java-app

運(yùn)行你的鏡像

docker run --rm my-java-app:1.0

你應(yīng)該看到輸出:

Hello, Dockerized Java World! ??
Current time: 2025-04-05T10:30:45.123

成功!你已經(jīng)制作并運(yùn)行了第一個(gè) Java Docker 鏡像!

深入 Dockerfile —— 更復(fù)雜的 Java 應(yīng)用

現(xiàn)實(shí)中的 Java 應(yīng)用通常是打包成 .jar 文件的 Spring Boot 項(xiàng)目。我們來看看如何為這類應(yīng)用構(gòu)建鏡像。

項(xiàng)目結(jié)構(gòu)示例

my-spring-app/
├── src/
│   └── main/
│       └── java/
│           └── com/example/DemoApplication.java
├── pom.xml
└── Dockerfile

DemoApplication.java 示例:

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @GetMapping("/hello")
    public String hello() {
        return "Hello from Dockerized Spring Boot! ??";
    }
}

使用 Maven 打包:

mvn clean package

生成 target/demo-app.jar

編寫優(yōu)化版 Dockerfile

# 第一階段:構(gòu)建階段
FROM maven:3.8.6-eclipse-temurin-17 AS builder

WORKDIR /app

# 復(fù)制 pom.xml 并下載依賴(利用緩存)
COPY pom.xml .
RUN mvn dependency:go-offline -B

# 復(fù)制源碼并打包
COPY src ./src
RUN mvn package -DskipTests

# 第二階段:運(yùn)行階段
FROM eclipse-temurin:17-jre-alpine

# 安裝時(shí)區(qū)數(shù)據(jù)(可選但推薦)
RUN apk add --no-cache tzdata

# 創(chuàng)建非 root 用戶提高安全性
RUN addgroup -g 1001 -S appgroup && \
    adduser -u 1001 -S appuser -G appgroup

WORKDIR /app

# 從構(gòu)建階段復(fù)制 jar 包
COPY --from=builder /app/target/demo-app*.jar app.jar

# 更改文件所有者
RUN chown appuser:appgroup app.jar

# 切換到非 root 用戶
USER appuser

# 暴露端口
EXPOSE 8080

# 啟動(dòng)應(yīng)用
ENTRYPOINT ["java", "-jar", "app.jar"]

多階段構(gòu)建的優(yōu)勢

上述 Dockerfile 使用了多階段構(gòu)建(multi-stage build),好處包括:

  • 最終鏡像不包含 Maven、源碼等構(gòu)建工具,體積更小
  • 安全性更高(沒有多余工具可被攻擊者利用)
  • 構(gòu)建層緩存更高效(pom.xml 不變則跳過依賴下載)

鏡像大小對(duì)比圖表

渲染錯(cuò)誤: Mermaid 渲染失敗: Parsing failed: Lexer error on line 3, column 5: unexpected character: ->“<- at offset: 30, skipped 11 characters. Lexer error on line 3, column 17: unexpected character: ->:<- at offset: 42, skipped 1 characters. Lexer error on line 4, column 5: unexpected character: ->“<- at offset: 52, skipped 9 characters. Lexer error on line 4, column 15: unexpected character: ->:<- at offset: 62, skipped 1 characters. Lexer error on line 5, column 5: unexpected character: ->“<- at offset: 72, skipped 11 characters. Lexer error on line 5, column 17: unexpected character: ->:<- at offset: 84, skipped 1 characters. Parse error on line 3, column 19: Expecting token of type 'EOF' but found `580`. Parse error on line 4, column 17: Expecting token of type 'EOF' but found `190`. Parse error on line 5, column 19: Expecting token of type 'EOF' but found `165`.

可以看到,通過多階段構(gòu)建和使用 Alpine 基礎(chǔ)鏡像,體積減少了約 70%!

構(gòu)建并測試 Spring Boot 鏡像

# 構(gòu)建鏡像
docker build -t spring-demo:1.0 .

# 運(yùn)行容器,映射端口
docker run -d -p 8080:8080 --name myapp spring-demo:1.0

# 查看日志
docker logs -f myapp

# 測試接口
curl http://localhost:8080/hello

預(yù)期輸出:

Hello from Dockerized Spring Boot! ??

清理無用鏡像和容器

構(gòu)建過程中會(huì)產(chǎn)生中間鏡像,定期清理很有必要:

# 刪除停止的容器
docker container prune

# 刪除未被使用的鏡像
docker image prune -a

# 刪除所有未使用的資源(謹(jǐn)慎?。?
docker system prune -a

第三部分:上傳 Docker 鏡像

制作好的鏡像,通常需要推送到遠(yuǎn)程倉庫,便于團(tuán)隊(duì)共享或部署到生產(chǎn)環(huán)境。

登錄 Docker Hub 或私有倉庫

docker login

輸入你的用戶名和密碼(或訪問令牌)。如果是私有倉庫:

docker login myregistry.corp.com

標(biāo)記鏡像

推送前,必須給鏡像打上符合目標(biāo)倉庫格式的標(biāo)簽:

# 格式:[倉庫地址/]用戶名/鏡像名:標(biāo)簽
docker tag spring-demo:1.0 yourusername/spring-demo:1.0

# 如果是私有倉庫:
docker tag spring-demo:1.0 myregistry.corp.com/yourteam/spring-demo:1.0

推送鏡像

docker push yourusername/spring-demo:1.0

推送成功后,其他人就可以通過 docker pull yourusername/spring-demo:1.0 拉取使用了!

安全最佳實(shí)踐

使用非 root 用戶

前面的 Dockerfile 中我們創(chuàng)建了 appuser,這是非常推薦的做法:

RUN adduser -u 1001 -S appuser
USER appuser

避免容器內(nèi)以 root 身份運(yùn)行應(yīng)用,降低安全風(fēng)險(xiǎn)。

固定基礎(chǔ)鏡像版本

不要使用 latest 標(biāo)簽:

# ? 不推薦
FROM eclipse-temurin:latest

# ? 推薦
FROM eclipse-temurin:17.0.8_7-jre-alpine

這樣可以確保構(gòu)建的可重復(fù)性和穩(wěn)定性。

掃描鏡像漏洞

可以使用 docker scan(需安裝 Docker Desktop 或 Snyk CLI):

docker scan yourusername/spring-demo:1.0

或者使用開源工具 Trivy:

trivy image yourusername/spring-demo:1.0

使用 BuildKit 提升構(gòu)建體驗(yàn)

BuildKit 是 Docker 的新一代構(gòu)建引擎,支持并行構(gòu)建、更好的緩存、更清晰的輸出等。

啟用方式:

export DOCKER_BUILDKIT=1
docker build -t myapp .

或者在 /etc/docker/daemon.json 中全局啟用:

{
  "features": {
    "buildkit": true
  }
}

實(shí)戰(zhàn)案例:自動(dòng)化構(gòu)建腳本

創(chuàng)建一個(gè) build.sh 腳本來自動(dòng)化整個(gè)流程:

#!/bin/bash

set -e  # 遇錯(cuò)即停

APP_NAME="spring-demo"
VERSION="1.0.0"
IMAGE_TAG="$APP_NAME:$VERSION"
REGISTRY_USER="your_dockerhub_username"

echo "?? 正在打包 Maven 項(xiàng)目..."
./mvnw clean package -DskipTests

echo "??? 正在構(gòu)建 Docker 鏡像..."
DOCKER_BUILDKIT=1 docker build -t $IMAGE_TAG .

echo "?? 正在本地測試鏡像..."
CONTAINER_ID=$(docker run -d -p 8080:8080 $IMAGE_TAG)
sleep 10  # 等待應(yīng)用啟動(dòng)

if curl -s http://localhost:8080/actuator/health | grep -q "UP"; then
    echo "? 應(yīng)用健康檢查通過"
else
    echo "? 應(yīng)用啟動(dòng)失敗"
    docker logs $CONTAINER_ID
    docker stop $CONTAINER_ID
    exit 1
fi

docker stop $CONTAINER_ID

echo "??? 正在標(biāo)記鏡像..."
docker tag $IMAGE_TAG $REGISTRY_USER/$IMAGE_TAG

echo "?? 正在登錄 Docker Hub..."
echo "$DOCKER_PASSWORD" | docker login -u "$REGISTRY_USER" --password-stdin

echo "?? 正在推送鏡像..."
docker push $REGISTRY_USER/$IMAGE_TAG

echo "?? 鏡像發(fā)布完成!"

提示:敏感信息如密碼應(yīng)使用環(huán)境變量或密鑰管理工具,不要硬編碼在腳本中。

使用 .dockerignore 優(yōu)化構(gòu)建

類似 .gitignore,.dockerignore 用于排除不需要復(fù)制到構(gòu)建上下文的文件:

.git
.gitignore
README.md
*.md
target/
!target/*.jar
logs/
*.log
.env
.DS_Store

放在項(xiàng)目根目錄,與 Dockerfile 同級(jí)。

調(diào)試技巧

查看鏡像歷史

docker history myimage:tag

可以了解每一層做了什么、大小多少。

進(jìn)入容器調(diào)試

如果容器啟動(dòng)失敗,可以這樣進(jìn)入調(diào)試:

# 啟動(dòng)臨時(shí)容器并進(jìn)入 shell
docker run -it --rm myimage:tag sh

# 或者針對(duì)已運(yùn)行的容器
docker exec -it container_name sh

查看鏡像詳細(xì)信息

docker inspect myimage:tag

返回 JSON 格式的完整元數(shù)據(jù),包括環(huán)境變量、掛載點(diǎn)、網(wǎng)絡(luò)配置等。

高級(jí)技巧:使用 Build Args 和 ENV

可以在構(gòu)建時(shí)傳入?yún)?shù):

ARG APP_PORT=8080
ENV PORT=$APP_PORT
EXPOSE $APP_PORT

構(gòu)建時(shí)指定:

docker build --build-arg APP_PORT=9000 -t myapp .

自動(dòng)化 CI/CD 集成

雖然不能提供 GitHub Actions 示例,但在 Jenkins、GitLab CI、Drone 等平臺(tái)都可以輕松集成 Docker 構(gòu)建。

通用流程:

  1. 代碼提交觸發(fā)流水線
  2. 拉取代碼
  3. 編譯打包
  4. 構(gòu)建 Docker 鏡像
  5. 推送到倉庫
  6. 通知部署系統(tǒng)

性能優(yōu)化建議

合理安排 Dockerfile 指令順序

經(jīng)常變動(dòng)的指令(如 COPY 源碼)應(yīng)放在后面,不變的指令(如安裝系統(tǒng)包)放在前面,以便充分利用緩存。

# ?? 好的順序
FROM ...
RUN apt-get update && apt-get install -y some-package
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src ./src    # ← 經(jīng)常變動(dòng)放最后

使用 .jar 分層(Spring Boot 2.3+)

Spring Boot 2.3 開始支持分層 jar,可以進(jìn)一步優(yōu)化 Docker 層緩存:

pom.xml 中啟用:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <layers>
            <enabled>true</enabled>
        </layers>
    </configuration>
</plugin>

然后在 Dockerfile 中:

FROM eclipse-temurin:17-jre-alpine as builder
WORKDIR application
COPY target/demo-app.jar app.jar
RUN java -Djarmode=layertools -jar app.jar extract
FROM eclipse-temurin:17-jre-alpine
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/resources/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

這樣,只有業(yè)務(wù)代碼變更時(shí)才會(huì)重建最后一層,大幅提升構(gòu)建速度。

鏡像管理策略

版本控制

推薦使用語義化版本:

  • myapp:1.0.0 —— 生產(chǎn)穩(wěn)定版
  • myapp:1.0.0-beta —— 預(yù)發(fā)布版
  • myapp:sha-abc123 —— Git Commit 對(duì)應(yīng)版
  • myapp:latest —— 最新版(慎用于生產(chǎn))

生命周期管理

制定鏡像保留策略:

  • 開發(fā)環(huán)境:保留最近 10 個(gè)版本
  • 測試環(huán)境:保留帶標(biāo)簽的所有版本
  • 生產(chǎn)環(huán)境:保留所有上線過的版本

可以編寫腳本定期清理:

# 刪除 30 天前未使用的鏡像
docker image prune -a --filter "until=720h"

私有鏡像倉庫搭建

雖然 Docker Hub 很方便,但企業(yè)通常需要私有倉庫。

推薦使用 HarborNexus Repository。

快速啟動(dòng) Harbor(使用 docker-compose):

# docker-compose.yml 片段
version: '2.3'
services:
  harbor-core:
    image: goharbor/harbor-core:v2.7.0
    # ... 其他配置

訪問 https://goharbor.io 獲取完整安裝指南。

測試你的鏡像

健康檢查

在 Dockerfile 中加入健康檢查:

HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
  CMD curl -f http://localhost:8080/actuator/health || exit 1

運(yùn)行后查看狀態(tài):

docker ps --format "table {{.Names}}\t{{.Status}}"

集成測試

編寫測試腳本驗(yàn)證鏡像功能:

#!/bin/bash
IMAGE=$1
CONTAINER=test-container

docker run -d --name $CONTAINER -p 8080:8080 $IMAGE
sleep 15

if ! curl -s http://localhost:8080/hello | grep -q "Dockerized"; then
    echo "? 測試失敗"
    docker logs $CONTAINER
    exit 1
fi

echo "? 所有測試通過"
docker rm -f $CONTAINER

常見問題解答

如何減小 Java 鏡像體積?

  • 使用 jlink 創(chuàng)建自定義 JRE(Java 9+)
  • 使用 Alpine 基礎(chǔ)鏡像
  • 多階段構(gòu)建
  • 分層 Jar

構(gòu)建很慢怎么辦?

  • 使用國內(nèi)鏡像加速器
  • 合理利用緩存(調(diào)整 Dockerfile 順序)
  • 使用 BuildKit
  • 分層構(gòu)建依賴

容器啟動(dòng)后立即退出?

  • 檢查 ENTRYPOINTCMD 是否正確
  • 查看日志:docker logs <container>
  • 交互式運(yùn)行調(diào)試:docker run -it yourimage sh

進(jìn)階:使用 Jib 工具(無需 Dockerfile)

Google 開發(fā)的 Jib 工具可以直接從 Maven/Gradle 構(gòu)建 Docker 鏡像,無需編寫 Dockerfile。

pom.xml 中添加插件:

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>3.3.1</version>
    <configuration>
        <from>
            <image>eclipse-temurin:17-jre-alpine</image>
        </from>
        <to>
            <image>your-dockerhub-username/spring-app</image>
            <tags>
                <tag>latest</tag>
                <tag>${project.version}</tag>
            </tags>
        </to>
        <container>
            <mainClass>com.example.DemoApplication</mainClass>
            <ports>
                <port>8080</port>
            </ports>
        </container>
    </configuration>
</plugin>

構(gòu)建并推送:

./mvnw compile jib:build

Jib 會(huì)自動(dòng)優(yōu)化層結(jié)構(gòu)、處理依賴緩存,是現(xiàn)代化 Java 項(xiàng)目的推薦方案。

鏡像構(gòu)建時(shí)間優(yōu)化前后對(duì)比

渲染錯(cuò)誤: Mermaid 渲染失敗: Parse error on line 7: ...依賴 :a1, 0, 120 編譯源碼 :a2, -----------------------^ Expecting 'taskData', got 'NL'

通過緩存復(fù)用和分層構(gòu)建,總構(gòu)建時(shí)間從 300 秒降至 85 秒!

總結(jié)

掌握 Docker 鏡像的拉取、制作與上傳,是現(xiàn)代開發(fā)者必備技能。本文從基礎(chǔ)命令講起,逐步深入到 Java 應(yīng)用的實(shí)戰(zhàn)構(gòu)建、安全加固、性能優(yōu)化和自動(dòng)化部署,希望能為你提供完整的知識(shí)體系。

記住幾個(gè)關(guān)鍵點(diǎn):

  • ? 使用多階段構(gòu)建減小鏡像體積
  • ? 固定基礎(chǔ)鏡像版本確保一致性
  • ? 使用非 root 用戶提升安全性
  • ? 合理利用緩存加速構(gòu)建
  • ? 自動(dòng)化測試確保鏡像質(zhì)量

容器化不是終點(diǎn),而是持續(xù)交付和云原生架構(gòu)的起點(diǎn)。繼續(xù)探索 Kubernetes、Helm、服務(wù)網(wǎng)格等技術(shù),讓你的應(yīng)用真正“生于云、長于云”。

“Dockerize all the things!” —— 但請(qǐng)記得,工具是手段,不是目的。始終關(guān)注業(yè)務(wù)價(jià)值和系統(tǒng)穩(wěn)定性。

以上就是Docker鏡像拉取、制作與上傳的完整指南的詳細(xì)內(nèi)容,更多關(guān)于Docker鏡像拉取、制作與上傳的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Docker 運(yùn)行多個(gè)Springboot的詳細(xì)教程

    Docker 運(yùn)行多個(gè)Springboot的詳細(xì)教程

    這篇文章主要介紹了Docker 運(yùn)行多個(gè)Springboot的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 在docker-compose.yml文件中配置容器的環(huán)境變量方式

    在docker-compose.yml文件中配置容器的環(huán)境變量方式

    本文介紹了在docker-compose.yml文件中設(shè)置和使用環(huán)境變量的方法,包括直接設(shè)置環(huán)境變量、從文件讀取環(huán)境變量以及使用多個(gè)環(huán)境文件進(jìn)行不同部署環(huán)境的配置
    2024-11-11
  • docker部署MongoDB數(shù)據(jù)庫的實(shí)現(xiàn)步驟

    docker部署MongoDB數(shù)據(jù)庫的實(shí)現(xiàn)步驟

    Docker可以提供一個(gè)輕量級(jí)、可移植的容器化環(huán)境,使得MongoDB的部署變得更加簡單和靈活,本文主要介紹了docker部署MongoDB數(shù)據(jù)庫的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • docker容器詳細(xì)講解如何精簡鏡像減小體積

    docker容器詳細(xì)講解如何精簡鏡像減小體積

    這篇文章主要介紹了docker容器如何精簡鏡像減小體積,一般我們打造鏡像會(huì)有幾百M(fèi)B,學(xué)完本文后我們將學(xué)會(huì)縮小鏡像體積,從而達(dá)到做出來的鏡像只有幾十MB,一起來看看吧
    2021-08-08
  • 如何實(shí)現(xiàn)不同網(wǎng)段docker容器網(wǎng)絡(luò)互通

    如何實(shí)現(xiàn)不同網(wǎng)段docker容器網(wǎng)絡(luò)互通

    文章講解了通過Docker bridge網(wǎng)絡(luò)實(shí)現(xiàn)容器間通信的方法,包括關(guān)閉防火墻、拉取busybox鏡像、創(chuàng)建容器并測試IP連通性,使用--link參數(shù)連接容器,以及跨網(wǎng)段通信的配置技巧
    2025-07-07
  • Docker開啟遠(yuǎn)程訪問的實(shí)現(xiàn)方式

    Docker開啟遠(yuǎn)程訪問的實(shí)現(xiàn)方式

    這篇文章主要介紹了Docker開啟遠(yuǎn)程訪問的實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用Docker部署Nginx并掛載目錄詳解

    使用Docker部署Nginx并掛載目錄詳解

    這篇文章主要為大家詳細(xì)介紹了使用Docker部署Nginx并掛載目錄的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • Docker安裝mysql超詳細(xì)步驟記錄

    Docker安裝mysql超詳細(xì)步驟記錄

    mysql大家可能習(xí)慣是二進(jìn)制安裝的,現(xiàn)在容器化發(fā)展迅速,也有很多公司是用docker安裝的,下面這篇文章主要給大家介紹了關(guān)于在Docker安裝mysql的超詳細(xì)步驟,需要的朋友可以參考下
    2022-07-07
  • Docker部署Ragflow(完美解決502 bad gateway)

    Docker部署Ragflow(完美解決502 bad gateway)

    本文主要介紹了Docker部署Ragflow,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 三分鐘完成 ubuntu16.04初始化,Java,maven,docker環(huán)境的部署問題

    三分鐘完成 ubuntu16.04初始化,Java,maven,docker環(huán)境的部署問題

    這篇文章主要介紹了三分鐘完成 ubuntu16.04初始化,Java,maven,docker環(huán)境的部署問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-11-11

最新評(píng)論

米林县| 章丘市| 忻州市| 新龙县| 孝感市| 永胜县| 鄯善县| 紫云| 阳山县| 民丰县| 柏乡县| 常德市| 茂名市| 米易县| 建始县| 台前县| 美姑县| 陆良县| 上蔡县| 宁国市| 扶余县| 顺平县| 岳普湖县| 左云县| 托克逊县| 三台县| 万载县| 涞水县| 三原县| 保康县| 体育| 平泉县| 博白县| 葫芦岛市| 耿马| 德庆县| 乌审旗| 亚东县| 张家港市| 南开区| 安溪县|