一、学习目标

  1. 理解 Docker 三大核心概念:镜像、容器、仓库

  2. 完成 Docker 环境安装

  3. 运行第一个容器验证环境


二、核心概念详解

1. 镜像 (Image)

类比理解:镜像就像是一个“安装光盘”或“类”,包含了操作系统、软件和配置的快照。

关键特点

  • 只读模板,不能直接运行

  • 分层构建,每一层都是只读的

  • 可以基于基础镜像创建自定义镜像

# 列出本地所有镜像
docker images

# 拉取镜像(如 Ubuntu)
docker pull ubuntu:22.04

# 查看镜像详情
docker inspect ubuntu:22.04

2. 容器 (Container)

类比理解:容器是“运行起来的进程”,相当于把镜像这张“光盘”放进光驱运行。

关键特点

  • 镜像的实例(就像 类→对象)

  • 可写层在镜像之上

  • 可启动、停止、删除

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

# 后台运行容器
docker run -d nginx

# 列出运行中的容器
docker ps

# 列出所有容器(包括停止的)
docker ps -a

# 停止容器
docker stop <容器ID或名称>

# 删除容器
docker rm <容器ID或名称>

3. 仓库 (Registry)

类比理解:仓库就像“应用商店”或 GitHub,用于存储和分享镜像。

关键点

  • Docker Hub:官方公共仓库

  • 可搭建私有仓库

  • 镜像命名规范:[仓库地址/]用户名/镜像名:标签

# 搜索镜像
docker search nginx

# 推送镜像到仓库(需要登录)
docker push 你的用户名/镜像名:标签

# 登录 Docker Hub
docker login

三、关系图解

┌─────────────┐      docker run      ┌─────────────┐
│   镜像       │ ──────────────────→  │   容器       │
│  (Image)    │                      │ (Container) │
│  只读模板    │      docker commit   │  运行实例    │
└─────────────┘      ←──────────────  └─────────────┘
       ↑                                       ↓
       │                                       │
   docker pull                           docker commit
   docker push                                  │
       │                                       ↓
┌─────────────┐                      ┌─────────────┐
│   仓库       │                      │   镜像       │
│ (Registry)  │                      │  (新版本)    │
└─────────────┘                      └─────────────┘

核心流程

  1. 仓库 → pull → 镜像

  2. 镜像 → run → 容器

  3. 容器修改 → commit → 新镜像

  4. 新镜像 → push → 仓库

四、环境安装

Linux 系统(Ubuntu/Debian)

# 1. 更新软件包
sudo apt update

# 2. 安装依赖
sudo apt install -y ca-certificates curl

# 3. 添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 4. 添加仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 6. 将当前用户加入 docker 组(避免每次都用 sudo)
sudo usermod -aG docker $USER

# 7. 重新登录或执行
newgrp docker

五、验证安装

1. 运行 Hello World

docker run hello-world

预期输出:

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

2. 查看版本信息

docker version
docker info

3. 验证镜像和容器

# 查看已下载的镜像(应该包含 hello-world)
docker images

# 查看所有容器(包括已退出的)
docker ps -a
# 你应该能看到刚刚退出的 hello-world 容器

六、动手实践任务(30分钟)

任务 1:运行 Ubuntu 容器并探索

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

# 2. 运行并进入容器
docker run -it ubuntu:22.04 /bin/bash

# 3. 在容器内执行命令(你会发现自己在一个“干净的” Ubuntu 环境)
ls /
cat /etc/os-release
echo "Hello Docker" > /tmp/test.txt
exit   # 退出容器

# 4. 容器停止后,数据丢失了吗?
docker ps -a  # 容器还在,但已停止

任务 2:后台运行 Nginx 并访问

# 1. 运行 Nginx 容器(后台模式)
docker run -d --name my-nginx -p 8080:80 nginx

# 2. 查看运行中的容器
docker ps

# 3. 访问 Nginx(浏览器打开 http://localhost:8080)
curl http://localhost:8080

# 4. 查看容器日志
docker logs my-nginx

# 5. 停止并删除
docker stop my-nginx
docker rm my-nginx

任务 3:自定义镜像(Dockerfile 初体验)

创建第一个 Dockerfile:

mkdir my-first-image
cd my-first-image

# 创建 Dockerfile
cat > Dockerfile << 'EOF'
FROM alpine:latest
RUN apk add --no-cache curl
CMD ["curl", "https://docker.com"]
EOF

# 构建镜像
docker build -t my-curl-image .

# 运行
docker run my-curl-image

 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐