温馨提示×

Ubuntu上如何使用Docker容器技术

小樊
37
2025-12-06 09:51:39
栏目: 智能运维

Ubuntu上使用Docker容器技术

一 安装与启动

  • 更新软件包索引并安装依赖:
    • sudo apt update
    • sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
  • 添加 Docker 官方 GPG 密钥(推荐 keyring 方式):
    • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • 添加稳定版 APT 仓库(自动匹配系统代号,如 jammyfocal):
    • echo “deb [arch=$(dpkg --print-architecture) 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 与 containerd:
    • sudo apt update
    • sudo apt install -y docker-ce docker-ce-cli containerd.io
  • 启动并设置开机自启:
    • sudo systemctl start docker
    • sudo systemctl enable docker
  • 验证安装(应看到 “Hello from Docker!”):
    • sudo docker run --rm hello-world
  • 可选 免 sudo 使用:
    • sudo usermod -aG docker $USER(需重新登录或重启会话生效)

二 核心概念与常用命令

  • 核心概念
    • 镜像 Images:应用的只读模板,包含运行环境与代码。
    • 容器 Containers:镜像的运行实例,彼此隔离。
    • 仓库 Registry:存放镜像的中心(如 Docker Hub)。
  • 镜像与容器常用命令
    • 搜索/拉取镜像:docker search nginx;docker pull nginx:latest
    • 列出镜像:docker images
    • 运行容器:docker run -d -p 8080:80 --name web nginx:latest
    • 查看容器:docker ps;docker ps -a(含已停止)
    • 进入容器:docker exec -it web bash
    • 停止/启动/删除容器:docker stop web;docker start web;docker rm web
    • 删除镜像:docker rmi <IMAGE_ID>
  • 数据持久化与网络
    • 数据卷(推荐):docker volume create data;docker run -d -v data:/app nginx
    • 绑定挂载:docker run -d -v $PWD:/app nginx
    • 网络:docker network ls;docker run -d --network bridge nginx

三 构建自定义镜像与运行示例

  • 示例一 快速 Nginx
    • 生成镜像:
      • cat <<‘EOF’ > Dockerfile FROM ubuntu:20.04 RUN apt update && apt install -y nginx && rm -rf /var/lib/apt/lists/* EXPOSE 80 CMD [“nginx”, “-g”, “daemon off;”] EOF
      • docker build -t my-nginx:latest .
    • 运行容器(主机端口 8080 映射到容器 80):
      • docker run -d -p 8080:80 --name my-nginx-container my-nginx:latest
  • 示例二 Python Web
    • 生成镜像:
      • cat <<‘EOF’ > Dockerfile FROM python:3.8-slim-buster WORKDIR /app COPY . /app RUN pip install --no-cache-dir -r requirements.txt EXPOSE 80 CMD [“python”, “app.py”] EOF
      • docker build -t my-python-app .
    • 运行容器(主机端口 4000 映射到容器 80):
      • docker run -d -p 4000:80 my-python-app

四 多容器应用与日常维护

  • 多容器应用(Docker Compose)
    • 安装 Compose(Linux 常见方式):
      • sudo apt update && sudo apt install -y docker-compose-plugin
    • 示例 docker-compose.yml(以 Nginx 为例):
      • version: “3.8” services: web: image: nginx:latest ports: - “8080:80” volumes: - ./html:/usr/share/nginx/html
    • 启动/停止:
      • docker compose up -d
      • docker compose down
  • 日常维护与优化
    • 资源限制:docker run -d --name app --cpus=“1.0” --memory=“512m” ubuntu sleep infinity
    • 查看资源占用:docker stats
    • 清理无用资源:docker system prune -a
    • 镜像加速器(可选,编辑 /etc/docker/daemon.json):
      • { “registry-mirrors”: [“https://<你的加速器地址>”] }
      • 修改后执行:sudo systemctl restart docker
    • 安全建议:尽量使用非 root用户运行容器内进程;选择最小化基础镜像;定期更新 Docker与镜像;对镜像进行漏洞扫描

0