如何在 Ubuntu 上精通 Docker 容器管理

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本全面的 Docker 教程为开发者和系统管理员提供了一份详细指南,以帮助他们理解和应用 Docker 容器技术。通过探索核心概念、架构和实际实施策略,学习者将获得在现代软件开发和部署环境中所需的关键技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/start("Start Container") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/run -.-> lab-392990{{"如何在 Ubuntu 上精通 Docker 容器管理"}} docker/ls -.-> lab-392990{{"如何在 Ubuntu 上精通 Docker 容器管理"}} docker/ps -.-> lab-392990{{"如何在 Ubuntu 上精通 Docker 容器管理"}} docker/start -.-> lab-392990{{"如何在 Ubuntu 上精通 Docker 容器管理"}} docker/stop -.-> lab-392990{{"如何在 Ubuntu 上精通 Docker 容器管理"}} docker/create -.-> lab-392990{{"如何在 Ubuntu 上精通 Docker 容器管理"}} docker/pull -.-> lab-392990{{"如何在 Ubuntu 上精通 Docker 容器管理"}} docker/build -.-> lab-392990{{"如何在 Ubuntu 上精通 Docker 容器管理"}} end

Docker 基础

Docker 基础入门

Docker 是一个强大的容器技术平台,它彻底改变了软件容器化。它使开发者能够将应用及其所有依赖项打包在一起,确保在不同的计算环境中具有一致的性能。

Docker 的核心概念

什么是 Docker?

Docker 是一个开源平台,它使用容器化来简化应用部署和管理。与传统虚拟机不同,Docker 容器共享主机系统的内核,这使得它们轻量级且高效。

graph TD A[应用代码] --> B[Docker 容器] B --> C[主机操作系统] C --> D[硬件]

Docker 的关键组件

组件 描述 用途
Docker 引擎 核心运行时 管理容器生命周期
Docker 镜像 轻量级模板 定义容器配置
Docker 容器 可运行实例 执行应用

Docker 架构

Docker 使用客户端 - 服务器架构,包含几个关键组件:

  • Docker 守护进程:管理 Docker 对象
  • Docker 客户端:向 Docker 守护进程发送命令
  • Docker 注册表:存储 Docker 镜像

基本的 Docker 命令

Ubuntu 22.04 系统下 Docker 命令示例:

## 安装 Docker
sudo apt-get update
sudo apt-get install docker.io

## 检查 Docker 版本
docker --version

## 拉取 Ubuntu 镜像
docker pull ubuntu:22.04

## 运行容器
docker run -it ubuntu:22.04 /bin/bash

## 列出正在运行的容器
docker ps

## 停止容器
docker stop [容器 ID]

Docker 容器化的优势

  • 一致的开发环境
  • 更快的部署
  • 资源高效利用
  • 可扩展性增强
  • 简化的依赖管理

Docker 环境设置

为在 Ubuntu 22.04 上安装 Docker 做准备

Docker 需要一个兼容的 Linux 环境。Ubuntu 22.04 提供了一个出色的平台用于容器部署,其安装过程简单直接。

系统要求

在安装之前,请确保你的 Ubuntu 系统满足以下先决条件:

要求 规格
操作系统 Ubuntu 22.04 LTS
架构 64 位
内核 5.4 或更高版本
内存 至少 2GB

Docker 安装方法

graph TD A[Docker 安装] --> B[仓库方法] A --> C[包方法] A --> D[脚本方法]

仓库安装过程

## 更新现有软件包
sudo apt-get update

## 安装所需依赖项
sudo apt-get install ca-certificates curl gnupg lsb-release

## 添加 Docker 的官方 GPG 密钥
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

## 设置稳定仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

## 安装 Docker 引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

验证 Docker 安装

## 检查 Docker 版本
docker --version

## 验证 Docker 是否正在运行
sudo systemctl status docker

## 测试 Docker 安装
sudo docker run hello-world

安装后配置

## 将当前用户添加到 docker 组
sudo usermod -aG docker $USER

## 重启 Docker 服务
sudo systemctl restart docker

Docker Compose 安装

## 下载 Docker Compose
sudo curl -L " -s)-$(uname -m)" -o /usr/local/bin/docker-compose

## 应用可执行权限
sudo chmod +x /usr/local/bin/docker-compose

## 验证安装
docker-compose --version

Docker 镜像管理

理解 Docker 镜像

Docker 镜像是轻量级、独立的可执行包,其中包含运行应用所需的一切。它们是创建容器的蓝图。

graph TD A[Dockerfile] --> B[Docker 镜像] B --> C[Docker 容器]

镜像管理命令

命令 功能
docker images 列出本地镜像
docker pull 下载镜像
docker push 上传镜像
docker rmi 删除镜像

创建 Dockerfile

## 选择基础镜像
FROM ubuntu:22.04

## 元数据
LABEL maintainer="[email protected]"

## 系统更新
RUN apt-get update && apt-get upgrade -y

## 安装依赖项
RUN apt-get install -y python3 python3-pip

## 设置工作目录
WORKDIR /app

## 复制应用文件
COPY.. /app

## 安装应用依赖项
RUN pip3 install -r requirements.txt

## 暴露应用端口
EXPOSE 8000

## 定义启动命令
CMD ["python3", "app.py"]

构建 Docker 镜像

## 从 Dockerfile 构建镜像
docker build -t myapp:v1.

## 列出本地镜像
docker images

## 标记现有镜像
docker tag myapp:v1 myregistry/myapp:latest

镜像管理工作流程

graph LR A[开发代码] --> B[创建 Dockerfile] B --> C[构建镜像] C --> D[测试容器] D --> E[推送到注册表] E --> F[部署容器]

高级镜像操作

## 将镜像导出到 tar 存档
docker save -o myimage.tar myimage:v1

## 从 tar 存档导入镜像
docker load -i myimage.tar

## 删除未使用的镜像
docker image prune

与 Docker 注册表交互

## 登录到 Docker Hub
docker login

## 将镜像推送到注册表
docker push myusername/myimage:tag

## 从注册表拉取镜像
docker pull myusername/myimage:tag

总结

Docker 代表了一种革命性的软件容器化方法,为开发者提供了一个强大的平台,用于创建一致、高效且可扩展的应用环境。通过掌握 Docker 的核心组件、架构和命令,专业人员可以简化他们的开发工作流程,改善资源管理,并在不同的计算平台上实现更灵活的软件部署。