插件窝 干货文章 如何自建docker容器

如何自建docker容器

Docker 容器 container bash 796    来源:    2025-04-30

自建Docker容器指南

准备工作

  1. 安装Docker

    • Linux: sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io (Ubuntu/Debian)
    • Windows/macOS: 下载Docker Desktop并安装
  2. 验证安装

    docker --version
    docker run hello-world
    

创建自定义Docker容器的步骤

方法一:使用Dockerfile构建

  1. 创建Dockerfile

    # 基础镜像
    FROM ubuntu:20.04
    
    # 维护者信息
    LABEL maintainer="yourname@example.com"
    
    # 更新软件包并安装必要工具
    RUN apt-get update && apt-get install -y \
       python3 \
       python3-pip \
       && rm -rf /var/lib/apt/lists/*
    
    # 设置工作目录
    WORKDIR /app
    
    # 复制本地文件到容器
    COPY . /app
    
    # 安装Python依赖
    RUN pip3 install -r requirements.txt
    
    # 暴露端口
    EXPOSE 5000
    
    # 容器启动命令
    CMD ["python3", "app.py"]
    
  2. 构建镜像

    docker build -t my-custom-image .
    
  3. 运行容器

    docker run -d -p 5000:5000 --name my-container my-custom-image
    

方法二:从现有容器创建

  1. 启动基础容器

    docker run -it --name temp-container ubuntu:20.04 /bin/bash
    
  2. 在容器内进行修改

    apt-get update
    apt-get install -y nginx
    exit
    
  3. 提交更改为新镜像

    docker commit temp-container my-nginx-image
    
  4. 运行新镜像

    docker run -d -p 80:80 my-nginx-image nginx -g "daemon off;"
    

容器管理常用命令

  • 查看运行中的容器: docker ps
  • 查看所有容器: docker ps -a
  • 停止容器: docker stop <container_id>
  • 启动容器: docker start <container_id>
  • 删除容器: docker rm <container_id>
  • 进入运行中的容器: docker exec -it <container_id> /bin/bash
  • 查看容器日志: docker logs <container_id>

高级配置

  1. 数据持久化

    docker run -v /host/path:/container/path my-image
    
  2. 环境变量

    docker run -e "ENV_VAR=value" my-image
    
  3. 网络配置

    docker network create my-network
    docker run --network=my-network my-image
    
  4. 资源限制

    docker run --memory="1g" --cpus="1.5" my-image
    

最佳实践

  1. 保持镜像尽可能小(使用多阶段构建)
  2. 每个容器只运行一个进程
  3. 使用.dockerignore文件排除不必要的文件
  4. 为镜像打上有意义的标签
  5. 定期清理不再使用的镜像和容器

通过以上步骤,您可以成功创建并管理自己的Docker容器。根据具体需求调整Dockerfile或运行参数即可。