首页主机资讯ubuntu环境如何进行容器化部署

ubuntu环境如何进行容器化部署

时间2025-10-04 05:32:03发布访客分类主机资讯浏览519
导读:Ubuntu环境下容器化部署完整流程 1. 安装Docker(容器化基础引擎) Docker是Ubuntu系统实现容器化部署的核心工具,需优先完成安装。以下是推荐的安装步骤: 更新系统软件包:确保系统包索引最新,避免依赖冲突。sudo a...

Ubuntu环境下容器化部署完整流程

1. 安装Docker(容器化基础引擎)

Docker是Ubuntu系统实现容器化部署的核心工具,需优先完成安装。以下是推荐的安装步骤:

  • 更新系统软件包:确保系统包索引最新,避免依赖冲突。
    sudo apt update
    
  • 安装必要依赖:支持通过HTTPS访问Docker官方仓库。
    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
    
  • 添加Docker官方GPG密钥:验证软件包来源的安全性。
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
  • 配置Docker稳定版仓库:将Docker官方仓库添加至系统源列表。
    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 >
         /dev/null
    
  • 安装Docker Engine:更新包索引并安装最新版本的Docker组件。
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
    
  • 验证安装结果:运行测试镜像确认Docker正常工作。
    sudo docker run hello-world
    

若需简化日常使用,可将当前用户加入docker组(避免每次使用sudo):

sudo usermod -aG docker $USER
newgrp docker  # 立即生效

2. 创建Dockerfile(定义容器镜像)

Dockerfile是构建自定义镜像的“蓝图”,需根据应用类型编写。以下以Python Flask应用为例:

  • 在项目根目录创建Dockerfile文件:
    # 使用官方Python轻量级镜像作为基础
    FROM python:3.9-slim
    
    # 设置工作目录(容器内的路径)
    WORKDIR /app
    
    # 复制项目文件至工作目录(先复制依赖文件,利用Docker层缓存提高构建效率)
    COPY requirements.txt .
    
    # 安装Python依赖
    RUN pip install --no-cache-dir -r requirements.txt
    
    # 复制应用代码至工作目录
    COPY . .
    
    # 暴露应用运行端口(与代码中监听端口一致)
    EXPOSE 5000
    
    # 定义容器启动时的默认命令(以非root用户运行更安全)
    USER 1000
    CMD ["python", "app.py"]
    

    USER 1000需替换为项目中存在的非root用户UID(可通过id -u查看),避免容器以root权限运行。

3. 构建Docker镜像

通过Dockerfile生成可复用的镜像,命令格式为:

docker build -t <
    镜像名称>
    :<
    标签>
     <
    Dockerfile所在目录>
    

示例(构建名为my-flask-app、标签为latest的镜像):

docker build -t my-flask-app:latest .

构建过程中,Docker会逐行执行Dockerfile指令,生成多层镜像结构。

4. 运行Docker容器

将镜像转化为运行中的容器,常用命令:

  • 基础运行(映射主机端口至容器端口,后台模式):
    docker run -d -p <
        主机端口>
        :<
        容器端口>
         --name <
        容器名称>
         <
        镜像名称>
        
    
    示例(将主机8080端口映射至容器5000端口,容器名为flask-container):
    docker run -d -p 8080:5000 --name flask-container my-flask-app:latest
    
  • 查看运行状态
    docker ps  # 查看正在运行的容器
    docker ps -a  # 查看所有容器(包括已停止的)
    
  • 查看容器日志
    docker logs -f <
        容器名称>
          # 实时查看日志(-f表示跟随输出)
    

5. 使用Docker Compose(管理多容器应用)

对于包含多个服务(如Web应用+数据库+缓存)的应用,推荐使用Docker Compose通过docker-compose.yml文件统一管理。

  • 安装Docker Compose
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  • 编写docker-compose.yml(以Flask+Redis为例):
    version: '3.8'  # 指定Compose文件格式版本
    services:
      web:
        build: .  # 构建当前目录下的Dockerfile
        ports:
          - "8080:5000"  # 映射主机端口至容器端口
        environment:
          - FLASK_ENV=production  # 设置环境变量
        volumes:
          - .:/app  # 持久化代码(主机目录:/容器目录)
        depends_on:
          - redis  # 定义服务依赖(web服务启动前需先启动redis)
      redis:
        image: redis:alpine  # 使用轻量级Redis镜像
        ports:
          - "6379:6379"  # 暴露Redis端口
    
  • 启动多容器应用
    docker-compose up --build  # --build表示重新构建镜像
    
  • 停止多容器应用
    docker-compose down
    

6. 关键管理操作

  • 查看容器日志
    docker-compose logs -f web  # 查看web服务的实时日志
    
  • 重启容器
    docker-compose restart web  # 重启web服务
    
  • 进入容器终端
    docker exec -it <
        容器名称>
         /bin/bash  # 进入容器内部调试
    

7. 最佳实践(提升稳定性与安全性)

  • 镜像优化
    • 使用多阶段构建减少镜像大小(如将构建环境和运行环境分离)。
    • 选择轻量级基础镜像(如alpineslim版本)。
  • 持久化存储
    • 使用volumes指令挂载宿主机目录或命名卷,避免数据丢失(如数据库文件)。
  • 安全配置
    • 避免以root用户运行容器(通过USER指令指定非root用户)。
    • 定期扫描镜像漏洞(使用docker scan或第三方工具如Trivy)。
  • 资源限制
    • 通过docker rundocker-compose.yml设置CPU、内存限制(如--cpus="1.0"--memory="512m"),防止容器占用过多资源。

通过以上步骤,可在Ubuntu环境中完成从基础到进阶的容器化部署,满足不同规模应用的需求。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu环境如何进行容器化部署
本文地址: https://pptw.com/jishu/719616.html
ubuntu环境如何进行虚拟化设置 ubuntu环境如何进行任务调度

游客 回复需填写必要信息