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 文件统一管理多个容器,启动时自动配置网络、端口和卷映射。


相关推荐
chools17 小时前
【AI超级智能体】快速搞懂工具调用Tool Calling 和 MCP协议
java·人工智能·学习·ai
李白你好18 小时前
TongWeb EJB 反序列化生成工具(Java-Chain 插件)
java·安全
U盘失踪了19 小时前
Java 的 JAR 是什么?
java·jar
今天又在写代码19 小时前
java-v2
java·开发语言
competes20 小时前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql
2501_9130613420 小时前
网络原理知识
java·网络
希望永不加班21 小时前
Spring AOP 代理模式:CGLIB 与 JDK 动态代理区别
java·开发语言·后端·spring·代理模式
flushmeteor21 小时前
java的动态代理和字节码生成技术
java·动态代理·代理·字节码生成
eggwyw21 小时前
基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
java·spring boot·spring
0xDevNull21 小时前
MySQL 别名(Alias)指南:从入门到避坑
java·数据库·sql