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


相关推荐
SelectDB1 天前
秒级弹性、最高降本 70%:SelectDB Serverless 如何重塑云数仓资源效率
大数据·后端·云原生
程序猿大帅1 天前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
程序员晓琪1 天前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly1 天前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
众少成多积小致巨1 天前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
东坡白菜1 天前
破局全栈:前端开发的Java入门实战记录—JPA(2)
java·后端
SimonKing1 天前
艹,维护AI写的代码,我心态崩了......
java·后端·程序员
用户298698530141 天前
Java Word 文档样式进阶:段落与文本背景色设置完全指南
java·后端
小bo波2 天前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
nanxun8863 天前
记一次诡异的 Docker 容器"串包"故障排查
java