首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【史上最强的Docker 常用命令】

【史上最强的Docker 常用命令】

作者头像
贺公子之数据科学与艺术
发布2025-12-18 08:44:16
发布2025-12-18 08:44:16
5120
举报
Docker 常用命令

容器管理 docker run -d -p 8080:80 --name my_container nginx:启动一个名为 my_container 的 Nginx 容器,映射主机 8080 端口到容器的 80 端口。 docker ps -a:查看所有容器(包括已停止的)。 docker stop/start/restart my_container:停止/启动/重启容器。 docker rm my_container:删除容器。

镜像管理 docker build -t my_image .:根据当前目录的 Dockerfile 构建镜像并命名为 my_imagedocker images:列出本地镜像。 docker rmi my_image:删除镜像。

日志与调试 docker logs my_container:查看容器日志。 docker exec -it my_container /bin/bash:进入容器交互式终端。

项目部署流程

单容器部署 编写 Dockerfile 定义应用环境,构建镜像后通过 docker run 启动。例如部署一个 Python Flask 应用:

代码语言:javascript
复制
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

多容器部署(Docker Compose) 使用 docker-compose.yml 定义服务依赖。例如部署一个 Web 应用 + MySQL:

代码语言:javascript
复制
version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example

运行 docker-compose up -d 启动所有服务。

Dockerfile 生成案例

Node.js 应用示例

代码语言:javascript
复制
FROM node:16
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

关键指令说明

  • FROM:指定基础镜像。
  • COPY:复制文件到容器内。
  • RUN:执行构建命令(如安装依赖)。
  • EXPOSE:声明容器运行时监听的端口。
  • CMD:定义容器启动命令。
案例分析:Python 微服务部署

场景 部署一个 FastAPI 服务,依赖 Redis 缓存,需保证高可用性。

解决方案

  1. Dockerfile 定义应用层:
代码语言:javascript
复制
FROM python:3.8
WORKDIR /code
COPY ./requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
  1. docker-compose.yml 编排服务:
代码语言:javascript
复制
version: '3'
services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - redis
  redis:
    image: redis:alpine
    volumes:
      - redis_data:/data
volumes:
  redis_data:

关键点

  • 使用 depends_on 确保 Redis 先启动。
  • 通过 volumes 持久化 Redis 数据。
代码实现:健康检查与优化

Dockerfile 添加健康检查

代码语言:javascript
复制
HEALTHCHECK --interval=30s --timeout=3s \
  CMD curl -f http://localhost:8000/health || exit 1

多阶段构建优化镜像大小

代码语言:javascript
复制
# 构建阶段
FROM python:3.8 as builder
WORKDIR /install
COPY requirements.txt .
RUN pip install --user -r requirements.txt

# 运行阶段
FROM python:3.8-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker 常用命令
  • 项目部署流程
  • Dockerfile 生成案例
  • 案例分析:Python 微服务部署
  • 代码实现:健康检查与优化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档