如何在 Ubuntu 上安装和运行 Docker 容器

DockerDockerBeginner
立即练习

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

简介

本全面的 Docker 教程为开发者和系统管理员提供了实施容器技术所需的基本知识。通过涵盖基本的 Docker 概念、安装过程和实际示例,学习者将获得现代软件部署和虚拟化技术方面的实用技能。

Docker 基础

Docker 基础入门

Docker 是一项强大的容器技术,它彻底改变了软件部署和应用程序虚拟化。它使开发者能够将应用程序及其所有依赖项打包成称为容器的标准化单元。

容器技术的核心概念

graph LR A[Docker 镜像] --> B[容器] B --> C[应用程序部署] B --> D[隔离]
概念 描述
Docker 镜像 轻量级、独立的可执行包
容器 镜像的可运行实例
Dockerfile 定义镜像配置的脚本

基本的 Docker 架构

容器通过共享主机系统的内核来提供轻量级虚拟化,同时保持应用程序隔离。这种方法与传统虚拟机不同。

在 Ubuntu 22.04 上安装

## 更新软件包索引
sudo apt update

## 安装依赖项
sudo apt install apt-transport-https ca-certificates curl software-properties-common

## 添加 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 update
sudo apt install docker-ce docker-ce-cli containerd.io

第一个 Docker 容器示例

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

## 运行交互式容器
docker run -it ubuntu:latest /bin/bash

## 在容器内部
apt update
apt install nginx -y
exit

Docker 环境设置

为在 Ubuntu 22.04 上安装 Docker 做准备

graph LR A[系统更新] --> B[安装依赖项] B --> C[设置 Docker 仓库] C --> D[安装 Docker 引擎] D --> E[Docker 配置]

系统要求

要求 规格
操作系统 Ubuntu 22.04 LTS
架构 64 位
内核 5.10+
内存 至少 2GB

完整的 Docker 安装脚本

## 更新系统软件包
sudo apt update && sudo apt upgrade -y

## 移除冲突的软件包
sudo apt remove docker docker-engine docker.io containerd runc

## 安装所需的依赖项
sudo apt install -y apt-transport-https 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 update
sudo apt install -y docker-ce docker-ce-cli containerd.io

## 验证安装
sudo docker --version

安装后配置

## 创建 docker 用户组
sudo groupadd docker

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

## 启用 Docker 服务
sudo systemctl enable docker.service
sudo systemctl start docker.service

## 验证 docker 功能
docker run hello-world

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

容器管理

容器生命周期概述

graph LR A[拉取镜像] --> B[创建容器] B --> C[启动容器] C --> D[容器运行] D --> E[停止容器] E --> F[移除容器]

基本的 Docker 容器命令

命令 功能
docker run 创建并启动容器
docker ps 列出正在运行的容器
docker stop 停止正在运行的容器
docker rm 移除容器
docker exec 在容器内执行命令

容器创建与管理

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

## 运行交互式容器
docker run -it --name my-ubuntu ubuntu:latest /bin/bash

## 列出所有容器
docker ps -a

## 启动已停止的容器
docker start my-ubuntu

## 停止正在运行的容器
docker stop my-ubuntu

## 移除容器
docker rm my-ubuntu

高级容器操作

## 在后台运行容器
docker run -d --name nginx-server nginx:latest

## 将容器端口映射到主机
docker run -p 8080:80 -d nginx:latest

## 检查容器详细信息
docker inspect nginx-server

## 查看容器日志
docker logs nginx-server

## 在正在运行的容器内执行命令
docker exec -it nginx-server bash

容器资源管理

## 限制容器资源
docker run -d \
  --name limited-container \
  --cpus="1" \
  --memory="512m" \
  nginx:latest

## 监控容器资源使用情况
docker stats

容器网络配置

## 创建自定义网络
docker network create my-network

## 在特定网络中运行容器
docker run --network=my-network -d nginx:latest

总结

Docker 代表了一种革命性的软件部署方法,它提供轻量级、可移植的容器,简化了应用程序开发和基础设施管理。通过掌握 Docker 的核心原理、安装过程和容器管理技术,专业人员可以在各种计算环境中显著提升他们的软件开发和部署能力。