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


相关推荐
zc.z8 小时前
JAVA实现:纯PCM格式音频转换成BASE64
java·音视频·pcm
mask哥9 小时前
力扣算法java实现汇总整理(上)
java·算法·leetcode
Aaswk10 小时前
Java Lambda 表达式与流处理
java·开发语言·python
是宇写的啊10 小时前
Spring AOP
java·spring
万邦科技Lafite10 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
Mr_pyx12 小时前
Spring AI 入门教程:Java开发者的AI应用捷径
java·人工智能·spring
Zephyr_012 小时前
Leedcode算法题
java·算法
苍煜13 小时前
Java开发IO零基础吃透:BIO、NIO、同步异步、阻塞非阻塞
java·python·nio
折哥的程序人生 · 物流技术专研13 小时前
Java面试85题图解版(一):基础核心篇
java·开发语言·后端·面试
AllData公司负责人13 小时前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql