Docker学习记录

Docker 入门教程

镜像、容器、卷与 Compose 图解

Docker 是一种轻量级的容器化技术,能够快速部署应用并保证环境一致性。本文整理了 Docker 基础操作、目录挂载、卷映射以及 Docker Compose 使用方法,并用图示帮助理解核心概念。


一、Docker 镜像管理

镜像是容器的静态模板,类似于虚拟机的快照。

下载镜像

复制代码
docker pull nginx

查看本地镜像

复制代码
docker images

删除镜像

复制代码
docker rmi <镜像ID或名字>

镜像是静态文件,可以用来创建多个容器实例。


二、Docker 容器管理

容器是镜像的运行实例,是 Docker 的核心概念。

查看容器

复制代码
docker ps           # 查看运行中容器
docker ps -a        # 查看所有容器,包括停止的

删除容器

复制代码
docker rm <容器ID或名字>

启动容器

复制代码
docker run -d --name mynginx -p 80:80 nginx

参数说明:-d 后台运行,--name 容器名字,-p 80:80 端口映射。


三、目录挂载与卷映射

目录挂载和卷映射用于持久化数据和共享文件。

目录挂载

复制代码
docker run -d --name mynginx -p 80:80 -v $(pwd)/html:/usr/share/nginx/html nginx

宿主机的 ./html 目录挂载到容器 Nginx 根目录,更新宿主机文件会同步到容器。

卷映射

复制代码
docker volume create mydata
docker run -d --name mynginx -p 80:80 -v mydata:/usr/share/nginx/html nginx

卷是 Docker 管理的持久化存储,跨容器共享且容器删除后数据保留,更适合生产环境。


四、Docker Hub

Docker Hub 是官方镜像仓库。常用操作:

复制代码
docker login           # 登录 Docker Hub
docker search nginx    # 搜索镜像
docker push <用户名>/<镜像名>   # 上传镜像

访问官网:https://hub.docker.com


五、Docker Compose 多容器管理

当有多个容器同时运行时,Docker Compose 可以通过 YAML 文件进行管理。

示例 docker-compose.yml

复制代码
version: "3.8"
services:
  web:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  redis:
    image: redis

启动和停止服务

复制代码
docker-compose up -d
docker-compose down

Compose 可以自动创建网络、卷映射和端口映射,一条命令即可管理多容器应用。


六、图文示意

1. 镜像与容器关系

复制代码
+-------------------+
|     镜像 (Image)   |
|-------------------|
| Nginx 1.23        |
| Redis 7.2         |
+-------------------+
         |
         v
+-------------------+
|    容器 (Container)|
|-------------------|
| mynginx           |
| redis-server      |
+-------------------+

镜像是模板,容器是运行实例。一个镜像可以启动多个容器,每个容器独立运行。


2. 端口映射

复制代码
宿主机端口 80  ------>  容器端口 80
宿主机端口 6379  ---->  容器端口 6379

端口映射让外部访问容器服务。


3. 目录挂载

复制代码
宿主机目录: ./html
         |
         v
容器目录: /usr/share/nginx/html

目录挂载实现宿主机与容器数据同步。


4. 卷映射

复制代码
+-------------------+
|   Docker 卷 (mydata) |
+-------------------+
         ^
         |
容器路径: /usr/share/nginx/html

卷可跨容器共享,容器删除后数据仍保留。


5. Compose 多容器示意

复制代码
+--------------------+
|   Web Service      |
|   nginx            |
| Ports: 80:80       |
| Volume: ./html     |
+--------------------+

+--------------------+
|   Redis Service    |
|   redis            |
| Ports: 6379:6379   |
+--------------------+

Compose 文件统一管理多个容器,启动时自动配置网络、端口和卷映射。


相关推荐
智能运维指南1 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
yz_aiks2 小时前
Spring AI 2.1 ChatMemory 已过时用什么替代:迁移到 Session Memory 实战(JDBC 存储与会话压缩)
java·spring boot·大模型·ai agent·spring ai
金銀銅鐵2 小时前
[Java] 用 GUI 展示 EnumMap 增删键值对时的内部变化
java·后端·ai编程
学长毕设2 小时前
基于SpringBoot的上门洗车服务系统设计与实现
java·spring boot·后端
jason成都2 小时前
RTKLIB-Java 多基线联合RTK:FIX率从0%到91.5%的三层根因修复
java·gnss·rtklib·rtklib_java
鱼宵2 小时前
Stream 终端操作一次讲透:collect、count、reduce 怎么选
java·stream·终端操作
白山编程大哥2 小时前
Java 后端如何优雅地把 List 集合返回给前端
java·前端·list
Linux运维技术栈3 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
On The Road :3 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
Shaoshing3 小时前
LeetCode100 49. 字母异位词分组
java·算法