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


相关推荐
阿里云云原生19 小时前
五层监控与运维数字孪生:畅捷通如何打造应对亿级数据的全栈可观测体系?
云原生
阿里云云原生20 小时前
从“救火”到“体检”:基于 STAROps 与 SysOM 的主机智能巡检闭环实战
云原生
阿里云云原生21 小时前
国内首批,阿里云 STAROps 通过《智能原生软件工程》系列标准认证
云原生
Zane199421 小时前
CAS 与原子类:Java 如何实现无锁编程
java·后端
TunerT_TQ21 小时前
【智能体安全治理|专栏第9期】从“一堆规则”到“数字宪法”:智能体治理的下一个阶段
java·开发语言·安全·开源治理·大模型安全·ai基础设施·智能体安全
legendary_bruce21 小时前
RAG知识库进阶-1
java·aigc
必须会一定会21 小时前
大模型手搓文件对比工具(6):差异不用再手选
java·人工智能·ai编程
yio_yin1 天前
MyBatis
java·前端·mybatis
程序员-Benothing1 天前
Java ForkJoinPool 详解:从分治思想到高性能并行计算
java·开发语言·后端·面试·职场和发展
上海安当技术1 天前
单点登录 SSO 怎么选协议?SAML 2.0 / OAuth 2.0 / OIDC / CAS 对比与 ERP、OA、CRM 接入实战
java·开发语言