简介
Docker 通过提供一个强大的容器化平台,彻底改变了软件开发方式。本全面教程将引导你学习基本的 Docker 命令,帮助开发者和系统管理员了解如何高效管理 Docker 容器、镜像和网络。无论你是初学者还是想复习 Docker 技能,本指南都将为你提供使用 Docker 命令行界面的实用见解。
Docker 通过提供一个强大的容器化平台,彻底改变了软件开发方式。本全面教程将引导你学习基本的 Docker 命令,帮助开发者和系统管理员了解如何高效管理 Docker 容器、镜像和网络。无论你是初学者还是想复习 Docker 技能,本指南都将为你提供使用 Docker 命令行界面的实用见解。
Docker 是一个开源平台,旨在通过容器化实现应用程序部署、扩展和管理的自动化。它使开发者能够将应用程序及其所有依赖项打包成称为容器的标准化单元,这些容器可以在不同的计算环境中一致地运行。
容器是轻量级、独立的可执行包,包含运行应用程序所需的一切:
Docker 镜像是用于创建容器的只读模板。它们充当容器创建的蓝图,并可存储在诸如 Docker Hub 之类的镜像仓库中。
Dockerfile 是一个文本文件,包含构建 Docker 镜像的指令。它定义了应用程序的环境、依赖项和配置。
Dockerfile 示例:
FROM ubuntu:22.04
RUN apt-get update
RUN apt-get install -y python3
COPY.. /app
WORKDIR /app
CMD ["python3", "app.py"]
| 特性 | 容器 | 虚拟机 |
|---|---|---|
| 资源使用 | 轻量级 | 重量级 |
| 启动时间 | 秒级 | 分钟级 |
| 隔离级别 | 进程级 | 完整操作系统级 |
| 性能 | 高 | 低 |
LabEx 提供交互式 Docker 学习环境,帮助开发者快速理解和实践容器化技术。
在安装 Docker 之前,请确保你的 Ubuntu 22.04 系统满足以下要求:
sudo apt-get update
sudo apt update
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | 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] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker --version
sudo docker run hello-world
sudo usermod -aG docker $USER
newgrp docker
sudo systemctl enable docker
sudo systemctl start docker
| 方法 | 优点 | 缺点 |
|---|---|---|
| 软件包仓库 | 易于更新 | 需要互联网连接 |
| 官方软件包 | 直接控制 | 手动更新 |
| 脚本安装 | 快速设置 | 安全性较低 |
LabEx 提供交互式 Docker 安装教程和实践环境,帮助开发者快速有效地掌握容器化技术。
| 组件 | 最低规格 |
|---|---|
| CPU | 2 核 |
| 内存 | 4GB |
| 磁盘空间 | 20GB |
| 操作系统 | Ubuntu 22.04 LTS |
Docker 命令遵循标准语法:
docker [命令] [选项] [参数]
docker pull ubuntu:latest
docker pull nginx:alpine
docker images
docker image ls
docker rmi ubuntu:latest
docker image rm nginx:alpine
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash
docker ps ## 运行中的容器
docker ps -a ## 所有容器
docker start web-server
docker stop web-server
docker restart web-server
docker rm web-server
docker container prune ## 删除所有已停止的容器
docker exec -it web-server bash
docker exec web-server ls /var/www/html
docker logs web-server
docker logs -f web-server ## 跟随日志输出
docker build -t myapp:v1.
docker volume create myvolume
docker run -v myvolume:/app nginx
docker network create mynetwork
docker run --network mynetwork nginx
| 类别 | 用途 | 示例命令 |
|---|---|---|
| 镜像管理 | 管理 Docker 镜像 | pull、push、build |
| 容器管理 | 控制容器 | run、start、stop |
| 系统管理 | Docker 系统信息 | info、version |
| 网络管理 | 管理网络 | network create |
| 卷管理 | 管理持久数据 | volume create |
LabEx 提供交互式环境来实践这些 Docker 命令,帮助开发者高效地获得实用的容器化技能。
| 选项 | 描述 | 示例 |
|---|---|---|
-d |
分离模式 | docker run -d nginx |
-it |
交互式终端 | docker run -it ubuntu |
--name |
为容器命名 | docker run --name web nginx |
-p |
端口映射 | docker run -p 8080:80 nginx |
通过掌握这些 Docker 基本命令,你已经获得了容器管理和部署的基本技能。Docker 为在不同环境中创建、运行和管理容器提供了一个强大的解决方案。当你继续探索 Docker 的功能时,请记住这些基本命令是高效容器化策略的基础。通过实践和试验这些命令,熟练掌握 Docker 技术并简化你的开发工作流程。