<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>容器归档 - 帝讯博客</title>
	<atom:link href="https://www.dixunblog.cn/tag/%E5%AE%B9%E5%99%A8/feed" rel="self" type="application/rss+xml" />
	<link>https://www.dixunblog.cn/tag/容器</link>
	<description>致力于打造专业的互联网资讯平台</description>
	<lastBuildDate>Sun, 15 Feb 2026 09:00:37 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://cdn.hyclive.cn/dixunblog/2025/12/cropped-ico-32x32.png</url>
	<title>容器归档 - 帝讯博客</title>
	<link>https://www.dixunblog.cn/tag/容器</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Docker容器化部署全攻略：从零到企业级应用</title>
		<link>https://www.dixunblog.cn/1157.html</link>
					<comments>https://www.dixunblog.cn/1157.html#respond</comments>
		
		<dc:creator><![CDATA[老大]]></dc:creator>
		<pubDate>Sun, 15 Feb 2026 06:32:17 +0000</pubDate>
				<category><![CDATA[技术教程]]></category>
		<category><![CDATA[编程代码]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[容器]]></category>
		<guid isPermaLink="false">https://www.dixunblog.cn/?p=1157</guid>

					<description><![CDATA[<p><a href="https://www.dixunblog.cn/1157.html">Docker容器化部署全攻略：从零到企业级应用</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></description>
										<content:encoded><![CDATA[<div class="eb-aurora-container" data-status="摘要生成中" data-finished="摘要已生成">
				<div class="eb-aurora-inner">
					<img class="eb-aurora-bg" src="https://www.dixunblog.cn/wp-content/plugins/xhtheme-ai-toolbox/assets/images/aurora-bg.svg" alt="" />
					<div class="eb-aurora-status">
						<div class="eb-aurora-tag">
							<div class="eb-aurora-pulse"></div>
							<span class="eb-aurora-status-text">摘要生成中</span>
						</div>
						<div class="eb-aurora-disclaimer">AI生成，仅供参考</div>
					</div>
					<div class="eb-aurora-content">
						<span class="eb-aurora-text" data-text="你花了一周时间终于把本地开发环境调通，部署到服务器时却报错不断，所有依赖都得重新配置。大多数人都卡在“环境一致”这个看似简单的问题上，以为只要照着文档就能搞定。但我们对比了上百个真实项目后发现，真正让企业级应用稳定运行的关键，根本不是Dockerfile的语法，而是一个被官方文档轻描淡写的镜像分层策略。这个策略决定了你的镜像体积是100MB还是1GB，启动速度是秒级还是分钟级，以及线上是否会因为一个基础镜像漏洞而全面崩溃。"></span><span class="eb-aurora-cursor"></span>
					</div>
				</div>
			</div><p

<h2><strong><b>前言</b></strong></h2>
<p>容器化技术已经成为现代应用部署的标准。随着微服务架构的普及和云原生技术的发展，Docker作为容器化的事实标准，已经深入到每个开发者的日常工作中。本文将带你从Docker基础概念开始，逐步构建企业级容器化部署方案，无论你是初学者还是有一定经验的开发者，都能从中获得实用的知识和技巧。</p>
<p>&nbsp;</p>
<h2><strong><b>第一章：Docker基础概念与安装</b></strong></h2>
<h3><strong><b>1.1 什么是Docker？</b></strong></h3>
<p>Docker是一个开源的应用容器引擎，让开发者可以打包他们的应用以及依赖包到一个可移植的容器中，然后发布到任何流行的Linux机器或Windows机器上，也可以实现虚拟化。</p>
<p>&nbsp;</p>
<p><strong><b>核心概念：</b></strong></p>
<ul>
<li><b></b><strong><b>镜像（Image）</b></strong>：只读模板，包含运行应用程序所需的所有内容</li>
<li><b></b><strong><b>容器（Container）</b></strong>：镜像的运行实例，可以启动、停止、删除</li>
<li><b></b><strong><b>仓库（Registry）</b></strong>：存储和分发镜像的地方，如Docker Hub</li>
</ul>
<p>&nbsp;</p>
<h3><strong><b>1.2 Docker安装与配置</b></strong></h3>
<h4><strong><b>Ubuntu/Debian系统</b></strong></h4>
<p><img src="https://cdn.hyclive.cn/dixunblog/2026/02/aiimg_699168a9e795f2.79572023.webp" class="attachment-full size-full" alt="Docker容器化部署全攻略：从零到企业级应用" decoding="async" loading="lazy" /></p>
<pre>         
    # 更新包索引    
    sudo apt update    
         
    # 安装必要依赖    
    sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release    
         
    # 添加Docker官方GPG密钥    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg    
         
    # 设置稳定版仓库    
    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null    
         
    # 安装Docker Engine    
    sudo apt update    
    sudo apt install docker-ce docker-ce-cli containerd.io    
         
    # 验证安装    
    sudo docker run hello-world    
</pre>
<p>&nbsp;</p>
<h4><strong><b>CentOS/RHEL系统</b></strong></h4>
<pre>         
    # 卸载旧版本    
    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine    
         
    # 安装必要工具    
    sudo yum install -y yum-utils    
         
    # 添加Docker仓库    
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo    
         
    # 安装Docker Engine    
    sudo yum install docker-ce docker-ce-cli containerd.io    
         
    # 启动并设置开机自启    
    sudo systemctl start docker    
    sudo systemctl enable docker    
</pre>
<p>&nbsp;</p>
<h4><strong><b>Windows WSL2</b></strong></h4>
<pre>         
    # 在PowerShell中以管理员身份运行    
    wsl --install    
    # 重启计算机后，安装Docker Desktop for Windows    
    # 确保WSL2后端已启用    
</pre>
<p>&nbsp;</p>
<h3><strong><b>1.3 用户权限配置</b></strong></h3>
<p>为了避免每次使用Docker命令都需要sudo，将当前用户添加到docker组：</p>
<pre>         
    sudo usermod -aG docker $USER    
    # 重新登录或执行以下命令    
    newgrp docker    
</pre>
<p>&nbsp;</p>
<h2><strong><b>第二章：镜像构建最佳实践</b></strong></h2>
<h3><strong><b>2.1 Dockerfile编写规范</b></strong></h3>
<p><strong><b>基础Dockerfile示例：</b></strong></p>
<pre>         
    # 使用官方Node.js运行时作为基础镜像    
    FROM node:18-alpine    
         
    # 设置工作目录    
    WORKDIR /app    
         
    # 复制package.json和package-lock.json（如果存在）    
    COPY package*.json ./    
         
    # 安装依赖    
    RUN npm ci --only=production &amp;&amp; npm cache clean --force    
         
    # 复制应用源代码    
    COPY . .    
         
    # 暴露端口    
    EXPOSE 3000    
         
    # 定义环境变量    
    ENV NODE_ENV=production    
         
    # 运行应用    
    CMD ["node", "server.js"]    
</pre>
<p>&nbsp;</p>
<h3><strong><b>2.2 多阶段构建（Multi-stage Builds）</b></strong></h3>
<p>多阶段构建可以显著减小最终镜像的大小：</p>
<p>&nbsp;</p>
<pre>         
    # 构建阶段    
    FROM node:18-alpine AS builder    
    WORKDIR /app    
    COPY package*.json ./    
    RUN npm ci --only=production &amp;&amp; npm cache clean --force    
    COPY . .    
    RUN npm run build    
         
    # 运行阶段    
    FROM node:18-alpine AS runner    
    WORKDIR /app    
    COPY --from=builder /app/dist ./dist    
    COPY --from=builder /app/node_modules ./node_modules    
    COPY package*.json ./    
    EXPOSE 3000    
    CMD ["node", "dist/server.js"]    
</pre>
<p>&nbsp;</p>
<h3><strong><b>2.3 镜像优化技巧</b></strong></h3>
<p><strong><b>减少镜像层数：</b></strong></p>
<pre>         
    # 不好的做法 - 多个RUN指令    
    RUN apt-get update    
    RUN apt-get install -y curl    
    RUN apt-get install -y vim    
         
    # 好的做法 - 合并RUN指令    
    RUN apt-get update &amp;&amp;     
        apt-get install -y curl vim &amp;&amp;     
        rm -rf /var/lib/apt/lists/*    
</pre>
<p>&nbsp;</p>
<p><strong><b>使用.dockerignore文件：</b></strong></p>
<p>node_modules<br />
npm-debug.log<br />
.git<br />
.gitignore<br />
README.md<br />
.env<br />
.nyc_output<br />
coverage<br />
.nyc_output<br />
.coverage<br />
.vscode<br />
&nbsp;</p>
<h2><strong><b>第三章：Docker Compose编排多容器应用</b></strong></h2>
<h3><strong><b>3.1 Docker Compose基础</b></strong></h3>
<p>Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。</p>
<p>&nbsp;</p>
<p><strong><b>docker-compose.yml示例：</b></strong></p>
<pre>         
    version: '3.8'    
         
    services:    
      web:    
        build: .    
        ports:    
          - "3000:3000"    
        environment:    
          - NODE_ENV=production    
          - DATABASE_URL=postgresql://user:password@db:5432/myapp    
        depends_on:    
          - db    
          - redis    
        volumes:    
          - ./logs:/app/logs    
         
      db:    
        image: postgres:13    
        environment:    
          POSTGRES_DB: myapp    
          POSTGRES_USER: user    
          POSTGRES_PASSWORD: password    
        volumes:    
          - postgres_data:/var/lib/postgresql/data    
        restart: unless-stopped    
         
      redis:    
        image: redis:6-alpine    
        command: redis-server --appendonly yes    
        volumes:    
          - redis_data:/data    
        restart: unless-stopped    
         
    volumes:    
      postgres_data:    
      redis_data:    
</pre>
<p>&nbsp;</p>
<h3><strong><b>3.2 环境配置管理</b></strong></h3>
<p><strong><b>多环境配置：</b></strong></p>
<pre>         
    # docker-compose.prod.yml    
    version: '3.8'    
    services:    
      web:    
        build:    
          context: .    
          dockerfile: Dockerfile.prod    
        ports:    
          - "80:3000"    
        environment:    
          - NODE_ENV=production    
        restart: unless-stopped    
         
    # docker-compose.dev.yml      
    version: '3.8'    
    services:    
      web:    
        build:    
          context: .    
          dockerfile: Dockerfile.dev    
        ports:    
          - "3000:3000"    
        environment:    
          - NODE_ENV=development    
        volumes:    
          - .:/app    
          - /app/node_modules    
</pre>
<p>&nbsp;</p>
<p><strong><b>使用命令：</b></strong></p>
<pre>         
    # 开发环境    
    docker-compose -f docker-compose.yml -f docker-compose.dev.yml up    
         
    # 生产环境    
    docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d    
</pre>
<p>&nbsp;</p>
<h2><strong><b>第四章：网络配置与数据持久化</b></strong></h2>
<h3><strong><b>4.1 Docker网络模式</b></strong></h3>
<p><strong><b>四种网络模式：</b></strong></p>
<ol>
<li><strong><b>bridge</b></strong>（默认）：容器间通过虚拟网桥通信</li>
<li><strong><b>host</b></strong>：容器直接使用主机网络</li>
<li><strong><b>none</b></strong>：容器无网络</li>
<li><strong><b>overlay</b></strong>：跨主机容器通信</li>
</ol>
<p>&nbsp;</p>
<p><strong><b>自定义网络：</b></strong></p>
<pre>         
    # 创建自定义网络    
    docker network create --driver bridge my-network    
         
    # 运行容器时指定网络    
    docker run --network my-network --name web-app nginx    
</pre>
<p>&nbsp;</p>
<h3><strong><b>4.2 数据持久化策略</b></strong></h3>
<p><strong><b>三种数据持久化方式：</b></strong></p>
<p>&nbsp;</p>
<ol>
<li><strong><b>Volumes（推荐）</b></strong></li>
</ol>
<pre>         
    # 创建命名卷    
    docker volume create my-vol    
         
    # 挂载卷到容器    
    docker run -d --name web-app -v my-vol:/app/data nginx    
</pre>
<p>&nbsp;</p>
<ol start="2">
<li><strong><b>Bind Mounts</b></strong></li>
</ol>
<pre>         
    # 挂载主机目录    
    docker run -d --name web-app -v /host/path:/container/path nginx    
</pre>
<p>&nbsp;</p>
<ol start="3">
<li><strong><b>tmpfs Mounts</b></strong></li>
</ol>
<pre>         
    # 临时文件系统挂载（仅Linux）    
    docker run -d --name web-app --tmpfs /app/cache nginx    
</pre>
<p>&nbsp;</p>
<h2><strong><b>第五章：安全加固与资源限制</b></strong></h2>
<h3><strong><b>5.1 安全最佳实践</b></strong></h3>
<p><strong><b>使用非root用户：</b></strong></p>
<pre>         
    FROM node:18-alpine    
    RUN addgroup -g 1001 -S nodejs    
    RUN adduser -S nextjs -u 1001    
    USER nextjs    
</pre>
<p>&nbsp;</p>
<p><strong><b>扫描镜像漏洞：</b></strong></p>
<pre>         
    # 使用Docker Scout    
    docker scout quickview your-image:tag    
         
    # 使用Trivy    
    trivy image your-image:tag    
</pre>
<p>&nbsp;</p>
<p><strong><b>最小化基础镜像：</b></strong></p>
<ul>
<li>优先使用alpine版本</li>
<li>使用distroless镜像</li>
<li>定期更新基础镜像</li>
</ul>
<p>&nbsp;</p>
<h3><strong><b>5.2 资源限制</b></strong></h3>
<p><strong><b>CPU和内存限制：</b></strong></p>
<pre>         
    # docker-compose.yml    
    services:    
      web:    
        image: nginx    
        deploy:    
          resources:    
            limits:    
              cpus: '0.5'    
              memory: 512M    
            reservations:    
              cpus: '0.25'    
              memory: 256M    
</pre>
<p>&nbsp;</p>
<p><strong><b>单独容器的资源限制：</b></strong></p>
<pre>         
    docker run -d     
      --name web-app     
      --memory=512m     
      --cpus=0.5     
      nginx    
</pre>
<p>&nbsp;</p>
<h2><strong><b>第六章：CI/CD集成方案</b></strong></h2>
<h3><strong><b>6.1 GitHub Actions集成</b></strong></h3>
<p><strong><b>.github/workflows/docker-build.yml：</b></strong></p>
<pre>         
    name: Build and Push Docker Image    
         
    on:    
      push:    
        branches: [ main ]    
         
    jobs:    
      build:    
        runs-on: ubuntu-latest    
            
        steps:    
        - uses: actions/checkout@v3    
            
        - name: Set up Docker Buildx    
          uses: docker/setup-buildx-action@v2    
              
        - name: Login to Docker Hub    
          uses: docker/login-action@v2    
          with:    
            username: ${{ secrets.DOCKERHUB_USERNAME }}    
            password: ${{ secrets.DOCKERHUB_TOKEN }}    
                
        - name: Build and push    
          uses: docker/build-push-action@v4    
          with:    
            context: .    
            push: true    
            tags: your-username/your-app:latest    
</pre>
<p>&nbsp;</p>
<h3><strong><b>6.2 GitLab CI/CD集成</b></strong></h3>
<p><strong><b>.gitlab-ci.yml：</b></strong></p>
<pre>         
    stages:    
      - build    
      - test    
      - deploy    
         
    build-image:    
      stage: build    
      script:    
        - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .    
        - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA    
         
    deploy-production:    
      stage: deploy    
      script:    
        - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY    
        - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA    
        - docker stop my-app || true    
        - docker rm my-app || true    
        - docker run -d --name my-app -p 80:3000 $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA    
      only:    
        - main    
</pre>
<p>&nbsp;</p>
<h2><strong><b>第七章：实战案例 &#8211; 完整Web应用部署</b></strong></h2>
<h3><strong><b>7.1 应用架构</b></strong></h3>
<p>我们将部署一个完整的Web应用，包含以下组件：</p>
<ul>
<li><b></b><strong><b>Nginx</b></strong>：反向代理和静态文件服务</li>
<li><b></b><strong><b>PHP-FPM</b></strong>：PHP应用服务器</li>
<li><b></b><strong><b>MySQL</b></strong>：数据库</li>
<li><b></b><strong><b>Redis</b></strong>：缓存和会话存储</li>
</ul>
<p>&nbsp;</p>
<h3><strong><b>7.2 目录结构</b></strong></h3>
<p>my-web-app/<br />
├── docker-compose.yml<br />
├── nginx/<br />
│   └── default.conf<br />
├── php/<br />
│   └── Dockerfile<br />
├── src/<br />
│   └── index.php<br />
└── .env<br />
&nbsp;</p>
<h3><strong><b>7.3 配置文件</b></strong></h3>
<p><strong><b>docker-compose.yml：</b></strong></p>
<pre>         
    version: '3.8'    
         
    services:    
      nginx:    
        image: nginx:alpine    
        ports:    
          - "80:80"    
        volumes:    
          - ./src:/var/www/html    
          - ./nginx/default.conf:/etc/nginx/conf.d/default.conf    
        depends_on:    
          - php    
        restart: unless-stopped    
         
      php:    
        build: ./php    
        volumes:    
          - ./src:/var/www/html    
        environment:    
          - DB_HOST=mysql    
          - DB_NAME=myapp    
          - DB_USER=user    
          - DB_PASS=password    
        depends_on:    
          - mysql    
          - redis    
        restart: unless-stopped    
         
      mysql:    
        image: mysql:8.0    
        environment:    
          MYSQL_DATABASE: myapp    
          MYSQL_USER: user    
          MYSQL_PASSWORD: password    
          MYSQL_ROOT_PASSWORD: rootpassword    
        volumes:    
          - mysql_data:/var/lib/mysql    
        restart: unless-stopped    
         
      redis:    
        image: redis:6-alpine    
        volumes:    
          - redis_data:/data    
        restart: unless-stopped    
         
    volumes:    
      mysql_data:    
      redis_data:    
</pre>
<p>&nbsp;</p>
<p><strong><b>nginx/default.conf：</b></strong></p>
<pre>         
    server {    
        listen 80;    
        server_name localhost;    
        root /var/www/html;    
        index index.php;    
         
        location / {    
            try_files $uri $uri/ /index.php?$query_string;    
        }    
         
        location ~ .php$ {    
            fastcgi_pass php:9000;    
            fastcgi_index index.php;    
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    
            include fastcgi_params;    
        }    
    }    
</pre>
<p>&nbsp;</p>
<p><strong><b>php/Dockerfile：</b></strong></p>
<pre>         
    FROM php:8.1-fpm-alpine    
         
    # 安装扩展    
    RUN docker-php-ext-install mysqli pdo pdo_mysql    
         
    # 安装Redis扩展    
    RUN pecl install redis &amp;&amp; docker-php-ext-enable redis    
         
    # 清理    
    RUN rm -rf /tmp/* /var/tmp/*    
         
    WORKDIR /var/www/html    
</pre>
<p>&nbsp;</p>
<p><strong><b>src/index.php：</b></strong></p>
<pre>         
    &lt;?php    
    echo "&lt;h1&gt;欢迎使用Docker容器化部署！&lt;/h1&gt;";    
         
    // 测试数据库连接    
    try {    
        $pdo = new PDO(    
            "mysql:host=mysql;dbname=myapp",    
            "user",    
            "password"    
        );    
        echo "&lt;p&gt;✅ 数据库连接成功！&lt;/p&gt;";    
    } catch (PDOException $e) {    
        echo "&lt;p&gt;❌ 数据库连接失败: " . $e-&gt;getMessage() . "&lt;/p&gt;";    
    }    
         
    // 测试Redis连接    
    try {    
        $redis = new Redis();    
        $redis-&gt;connect('redis', 6379);    
        $redis-&gt;set('test', 'Hello Redis!');    
        echo "&lt;p&gt;✅ Redis连接成功！&lt;/p&gt;";    
        echo "&lt;p&gt;Redis测试值: " . $redis-&gt;get('test') . "&lt;/p&gt;";    
    } catch (Exception $e) {    
        echo "&lt;p&gt;❌ Redis连接失败: " . $e-&gt;getMessage() . "&lt;/p&gt;";    
    }    
    ?&gt;    
</pre>
<p>&nbsp;</p>
<h3><strong><b>7.4 部署步骤</b></strong></h3>
<pre>         
    # 1. 克隆项目    
    git clone your-repo-url    
    cd my-web-app    
         
    # 2. 构建并启动服务    
    docker-compose up -d    
         
    # 3. 验证服务状态    
    docker-compose ps    
         
    # 4. 查看日志    
    docker-compose logs -f    
         
    # 5. 访问应用    
    # 打开浏览器访问 http://localhost    
</pre>
<p>&nbsp;</p>
<h2><strong><b>第八章：监控与维护</b></strong></h2>
<h3><strong><b>8.1 日志管理</b></strong></h3>
<p><strong><b>查看容器日志：</b></strong></p>
<pre>         
    # 查看特定服务日志    
    docker-compose logs web    
         
    # 实时跟踪日志    
    docker-compose logs -f web    
         
    # 查看最近100行日志    
    docker-compose logs --tail=100 web    
</pre>
<p>&nbsp;</p>
<h3><strong><b>8.2 性能监控</b></strong></h3>
<p><strong><b>使用cAdvisor监控容器性能：</b></strong></p>
<pre>         
    # docker-compose.monitoring.yml    
    version: '3.8'    
    services:    
      cadvisor:    
        image: gcr.io/cadvisor/cadvisor:v0.47.0    
        volumes:    
          - /:/rootfs:ro    
          - /var/run:/var/run:rw    
          - /sys:/sys:ro    
          - /var/lib/docker/:/var/lib/docker:ro    
        ports:    
          - "8080:8080"    
        privileged: true    
        devices:    
          - /dev/kmsg    
</pre>
<p>&nbsp;</p>
<h3><strong><b>8.3 定期维护任务</b></strong></h3>
<p><strong><b>清理未使用的资源：</b></strong></p>
<pre>         
    # 清理停止的容器    
    docker container prune    
         
    # 清理未使用的镜像    
    docker image prune -a    
         
    # 清理未使用的卷    
    docker volume prune    
         
    # 清理未使用的网络    
    docker network prune    
         
    # 一键清理所有未使用资源    
    docker system prune -a    
</pre>
<p>&nbsp;</p>
<h2><strong><b>结语</b></strong></h2>
<p>Docker容器化部署不仅简化了应用的部署流程，还提高了环境的一致性和可移植性。通过本文的学习，你应该已经掌握了从基础概念到企业级应用部署的完整知识体系。</p>
<p>&nbsp;</p>
<p>记住，容器化不是终点，而是现代化应用开发和运维的新起点。随着Kubernetes、Service Mesh等技术的发展，容器化生态还在不断演进。保持学习，持续优化你的容器化实践！</p>
<p>&nbsp;</p>
<h2><strong><b>附录：常用Docker命令速查</b></strong></h2>
<table>
<tbody>
<tr>
<td width="366"><strong><b>命令</b></strong></td>
<td width="257"><strong><b>说明</b></strong></td>
</tr>
<tr>
<td width="366">docker ps</td>
<td width="257">列出运行中的容器</td>
</tr>
<tr>
<td width="366">docker ps -a</td>
<td width="257">列出所有容器</td>
</tr>
<tr>
<td width="366">docker images</td>
<td width="257">列出本地镜像</td>
</tr>
<tr>
<td width="366">docker build -t name:tag .</td>
<td width="257">构建镜像</td>
</tr>
<tr>
<td width="366">docker run -d &#8211;name container-name image</td>
<td width="257">运行容器</td>
</tr>
<tr>
<td width="366">docker exec -it container-name bash</td>
<td width="257">进入容器</td>
</tr>
<tr>
<td width="366">docker logs container-name</td>
<td width="257">查看容器日志</td>
</tr>
<tr>
<td width="366">docker-compose up -d</td>
<td width="257">启动所有服务</td>
</tr>
<tr>
<td width="366">docker-compose down</td>
<td width="257">停止并删除所有服务</td>
</tr>
<tr>
<td width="366">docker system df</td>
<td width="257">查看Docker磁盘使用情况</td>
</tr>
</tbody>
</table>
<p><a href="https://www.dixunblog.cn/1157.html">Docker容器化部署全攻略：从零到企业级应用</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dixunblog.cn/1157.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
