温馨提示×

ubuntu环境如何使用容器技术

小樊
38
2025-11-22 15:51:37
栏目: 智能运维

Ubuntu 环境使用容器技术

一 安装与验证

  • 更新系统并安装依赖
    • sudo apt update && sudo apt upgrade -y
    • sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  • 添加 Docker 官方 GPG 密钥与软件源(使用推荐的 keyring 方式)
    • 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 > /dev/null
  • 安装 Docker Engine 并启动服务
    • sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
    • sudo systemctl start docker && sudo systemctl enable docker
  • 验证安装
    • sudo docker run --rm hello-world
  • 可选 国内镜像加速(提升拉取速度)
    • sudo mkdir -p /etc/docker
    • sudo tee /etc/docker/daemon.json <<-‘EOF’ { “registry-mirrors”: [“https://<你的加速器地址>.mirror.aliyuncs.com”] } EOF
    • sudo systemctl daemon-reload && sudo systemctl restart docker
  • 说明:也可使用系统仓库的 docker.io 包快速安装(sudo apt install -y docker.io),但版本与更新节奏可能滞后于 Docker 官方仓库。

二 基本使用

  • 拉取与运行 Ubuntu 容器
    • 拉取镜像:docker pull ubuntu:22.04(或 ubuntu:latest)
    • 交互式运行:docker run -it --name my_ubuntu ubuntu:22.04 /bin/bash
  • 后台运行与进入
    • 后台运行:docker run -it -d --name my_dev --restart=unless-stopped ubuntu:22.04
    • 进入容器:docker exec -it my_dev /bin/bash
  • 常用管理
    • 查看容器:docker ps(运行中)、docker ps -a(全部)
    • 启停与删除:docker start|stop|restart|rm <容器名或ID>
  • 文件拷贝
    • 宿主机→容器:docker cp ./app my_dev:/tmp/
    • 容器→宿主机:docker cp my_dev:/tmp/out.txt ./
  • 运行一次性任务
    • docker run --rm ubuntu:22.04 echo “Hello from container”
  • 提示:最小化 Ubuntu 镜像缺少常用工具,进入后通常先执行 apt update && apt install -y <包名>(如 vim curl wget)。

三 数据持久化与网络

  • 数据持久化
    • 绑定挂载(开发常用):docker run -it -d --name web -p 8080:80 -v $PWD:/var/www/html ubuntu:22.04
    • 命名卷(生产更推荐):docker volume create appdata;docker run -it -d --name web -p 8080:80 -v appdata:/var/www/html ubuntu:22.04
  • 端口映射
    • -p 主机端口:容器端口(如 -p 8080:80);-P 随机映射所有暴露端口
  • 容器间通信
    • 使用自定义网络:docker network create appnet;docker run -d --name db --network appnet ubuntu:22.04;docker run -d --name web --network appnet ubuntu:22.04
  • 说明:卷由 Docker 管理,更适合持久化与迁移;绑定挂载便于开发时热更新。

四 多容器应用与 Docker Compose

  • 示例 docker-compose.yml(Nginx + Redis)
    • version: “3.8”
    • services:
      • web:
        • image: nginx:alpine
        • ports: [“8080:80”]
        • volumes: [“./html:/usr/share/nginx/html:ro”]
      • redis:
        • image: redis:alpine
  • 常用命令
    • 启动:docker-compose up -d(后台)
    • 查看日志:docker-compose logs -f
    • 停止与清理:docker-compose down(加 -v 同时删除卷)
  • 适用场景:本地开发、集成测试、小型服务编排。

五 构建镜像与最佳实践

  • 使用 Dockerfile 构建自定义镜像
    • FROM ubuntu:22.04
    • RUN apt-get update && apt-get install -y nginx && rm -rf /var/lib/apt/lists/*
    • EXPOSE 80
    • CMD [“nginx”, “-g”, “daemon off;”]
    • 构建:docker build -t my-nginx:1.0 .
    • 运行:docker run -d -p 8080:80 --name web my-nginx:1.0
  • 镜像与容器管理进阶
    • 导出/导入镜像:docker save -o my-nginx.tar my-nginx:1.0;docker load -i my-nginx.tar
    • 提交容器为新镜像:docker commit <容器ID> my-ubuntu:custom
  • 安全与运维建议
    • 以非 root 用户运行应用(Dockerfile 中 USER 指令)
    • 最小权限与最小镜像;定期更新基础镜像与依赖
    • 为长期服务设置重启策略(如 --restart=unless-stopped)
    • 为容器设置资源限制(–cpus、–memory)避免资源争用
  • 说明:Dockerfile 便于可重复构建与交付;commit 适合临时记录状态但不利于可维护性与审计。

0