🔥 Docker最全入门真香警告:打包你的应用就像装乐高!


运维工程师的梦想
一次构建,到处运行!
再也不用说“在我机器上是好的啊”~

https://img-blog.csdnimg.cn/img_convert/3a6d8d8e9d7d4a4b8b0e9d7d4a4b8b0e9.gif

灵魂拷问
你是否经历过:

  • 环境配置让人头秃?
  • 测试和生产环境不一致?
  • 部署过程像走钢丝?
    ——Docker 来拯救!

🚀 初阶必备:Docker三把斧

场景:把应用装进集装箱

# 1. 制作集装箱图纸(Dockerfile)  
FROM node:14  
WORKDIR /app  
COPY . .  
RUN npm install  
EXPOSE 3000  
CMD ["npm", "start"]  

# 2. 建造集装箱(构建镜像)  
docker build -t my-app:v1 .  

# 3. 启动物流运输(运行容器)  
docker run -d -p 8080:3000 --name my-app-container my-app:v1  

避坑指南
别把整个仓库都COPY进镜像!
✅ 正确做法:

# .dockerignore 文件忽略无用文件  
node_modules  
.git  
.env  

⚡ 高频六式:开发者的救命符

1️⃣ 镜像管理术

# 查看本地镜像(集装箱仓库)  
docker images  

# 搜索远程镜像(全球集装箱市场)  
docker search nginx  

# 删除镜像(清理旧集装箱)  
docker rmi old-image:v1  

2️⃣ 容器操控术

# 查看运行中的容器(监控物流)  
docker ps  

# 查看所有容器(包括停止的)  
docker ps -a  

# 进入容器内部(开箱检查)  
docker exec -it my-app-container bash  

# 停止/启动容器(暂停物流)  
docker stop my-app-container  
docker start my-app-container  

3️⃣ 数据持久化

# 创建数据卷(建立共享仓库)  
docker volume create my-data  

# 挂载数据卷(连接仓库和集装箱)  
docker run -v my-data:/app/data my-app:v1  

4️⃣ 网络互联

# 创建专属网络(建立专用物流通道)  
docker network create app-network  

# 容器加入网络(集装箱上专用通道)  
docker run --network app-network --name app1 my-app:v1  
docker run --network app-network --name app2 my-app:v2  

5️⃣ 日志监控

# 查看实时日志(监控集装箱动态)  
docker logs -f my-app-container  

# 查看资源占用(检查集装箱载重)  
docker stats  

6️⃣ 一键清理

# 清理停止的容器(回收废弃集装箱)  
docker container prune  

# 清理无用镜像(销毁废弃图纸)  
docker image prune  

🧠 实战部署:从零到上线

步骤1:编写Dockerfile

# 使用轻量级基础镜像  
FROM python:3.9-slim  

# 设置工作目录  
WORKDIR /app  

# 先安装依赖(利用缓存层)  
COPY requirements.txt .  
RUN pip install --no-cache-dir -r requirements.txt  

# 再复制代码  
COPY . .  

# 暴露端口  
EXPOSE 8000  

# 启动命令  
CMD ["gunicorn", "app:app", "-b", "0.0.0.0:8000"]  

步骤2:构建镜像

docker build -t my-python-app:v1 .  

步骤3:运行容器

docker run -d \  
  -p 8000:8000 \  
  --name python-app \  
  --restart=always \  # 自动重启  
  -v /data/config:/app/config \  # 挂载配置文件  
  my-python-app:v1  

步骤4:查看状态

docker ps -a | grep python-app  
docker logs python-app  

🚨 灾难急救包

事故现场 急救命令
容器启动失败 docker logs <容器ID>
磁盘空间不足 docker system prune -a
忘记容器内修改 docker diff <容器ID>
需要备份容器数据 docker cp <容器ID>:/path ./backup

🌟 Docker真香口诀

镜像构建 docker build  
容器启动 docker run  
查看日志 docker logs  
进入容器 docker exec  

数据持久 -v 挂载  
网络互联 --network  
清理回收 prune  
一键部署 compose up  

下山前的叮嘱
基础镜像选精简
分层构建用缓存
数据挂载要持久
生产环境加监控


🚀 进阶装备:Docker Compose

场景:多容器协同作战

version: '3.8'  
services:  
  web:  
    image: my-web-app:v2  
    ports:  
      - "80:3000"  
    depends_on:  
      - db  
  db:  
    image: postgres:13  
    volumes:  
      - db-data:/var/lib/postgresql/data  

volumes:  
  db-data:  

一键启动舰队

docker-compose up -d  

🎮 互动练习:Docker游乐场

挑战1:5分钟部署WordPress

docker run -d \  
  --name wordpress \  
  -p 8080:80 \  
  -e WORDPRESS_DB_HOST=db \  
  -e WORDPRESS_DB_USER=wpuser \  
  -e WORDPRESS_DB_PASSWORD=secret \  
  wordpress:latest  

挑战2:给旧应用制作镜像

为你的某个老项目编写Dockerfile并成功运行


最后的魔法
当你说出“docker-compose up”的咒语
整个应用舰队将为你启航!

🐳 Docker真香警告:打包你的应用就像装乐高!

运维工程师的梦想
一次构建,到处运行!
再也不用说"在我机器上是好的啊"~

灵魂拷问
你是否经历过:

  • 环境配置让人头秃?
  • 测试和生产环境不一致?
  • 部署过程像走钢丝?
    ——Docker 来拯救!

🚀 初阶必备:Docker三把斧

场景:把应用装进集装箱

# 1. 制作集装箱图纸(Dockerfile)  
FROM node:14  
WORKDIR /app  
COPY . .  
RUN npm install  
EXPOSE 3000  
CMD ["npm", "start"]  

# 2. 建造集装箱(构建镜像)  
docker build -t my-app:v1 .  

# 3. 启动物流运输(运行容器)  
docker run -d -p 8080:3000 --name my-app-container my-app:v1  

避坑指南
别把整个仓库都COPY进镜像!
✅ 正确做法:

# .dockerignore 文件忽略无用文件  
node_modules  
.git  
.env  

⚡ 高频六式:开发者的救命符

1️⃣ 镜像管理术

# 查看本地镜像(集装箱仓库)  
docker images  

# 搜索远程镜像(全球集装箱市场)  
docker search nginx  

# 删除镜像(清理旧集装箱)  
docker rmi old-image:v1  

2️⃣ 容器操控术

# 查看运行中的容器(监控物流)  
docker ps  

# 查看所有容器(包括停止的)  
docker ps -a  

# 进入容器内部(开箱检查)  
docker exec -it my-app-container bash  

# 停止/启动容器(暂停物流)  
docker stop my-app-container  
docker start my-app-container  

3️⃣ 数据持久化

# 创建数据卷(建立共享仓库)  
docker volume create my-data  

# 挂载数据卷(连接仓库和集装箱)  
docker run -v my-data:/app/data my-app:v1  

4️⃣ 网络互联

# 创建专属网络(建立专用物流通道)  
docker network create app-network  

# 容器加入网络(集装箱上专用通道)  
docker run --network app-network --name app1 my-app:v1  
docker run --network app-network --name app2 my-app:v2  

5️⃣ 日志监控

# 查看实时日志(监控集装箱动态)  
docker logs -f my-app-container  

# 查看资源占用(检查集装箱载重)  
docker stats  

6️⃣ 一键清理

# 清理停止的容器(回收废弃集装箱)  
docker container prune  

# 清理无用镜像(销毁废弃图纸)  
docker image prune  

🧠 实战部署:从零到上线

步骤1:编写Dockerfile

# 使用轻量级基础镜像  
FROM python:3.9-slim  

# 设置工作目录  
WORKDIR /app  

# 先安装依赖(利用缓存层)  
COPY requirements.txt .  
RUN pip install --no-cache-dir -r requirements.txt  

# 再复制代码  
COPY . .  

# 暴露端口  
EXPOSE 8000  

# 启动命令  
CMD ["gunicorn", "app:app", "-b", "0.0.0.0:8000"]  

步骤2:构建镜像

docker build -t my-python-app:v1 .  

步骤3:运行容器

docker run -d \  
  -p 8000:8000 \  
  --name python-app \  
  --restart=always \  # 自动重启  
  -v /data/config:/app/config \  # 挂载配置文件  
  my-python-app:v1  

步骤4:查看状态

docker ps -a | grep python-app  
docker logs python-app  

🚨 灾难急救包

事故现场 急救命令
容器启动失败 docker logs <容器ID>
磁盘空间不足 docker system prune -a
忘记容器内修改 docker diff <容器ID>
需要备份容器数据 docker cp <容器ID>:/path ./backup

🌟 Docker真香口诀

镜像构建 docker build  
容器启动 docker run  
查看日志 docker logs  
进入容器 docker exec  

数据持久 -v 挂载  
网络互联 --network  
清理回收 prune  
一键部署 compose up  

下山前的叮嘱
基础镜像选精简
分层构建用缓存
数据挂载要持久
生产环境加监控


🚀 进阶装备:Docker Compose

场景:多容器协同作战

version: '3.8'  
services:  
  web:  
    image: my-web-app:v2  
    ports:  
      - "80:3000"  
    depends_on:  
      - db  
  db:  
    image: postgres:13  
    volumes:  
      - db-data:/var/lib/postgresql/data  

volumes:  
  db-data:  

一键启动舰队

docker-compose up -d  

🎮 互动练习:Docker游乐场

挑战1:5分钟部署WordPress

docker run -d \  
  --name wordpress \  
  -p 8080:80 \  
  -e WORDPRESS_DB_HOST=db \  
  -e WORDPRESS_DB_USER=wpuser \  
  -e WORDPRESS_DB_PASSWORD=secret \  
  wordpress:latest  

挑战2:给旧应用制作镜像

为你的某个老项目编写Dockerfile并成功运行


最后的魔法
当你说出"docker-compose up"的咒语
整个应用舰队将为你启航!

posted @ 2025-06-14 11:33  张大帅Java  阅读(17)  评论(0)    收藏  举报