Docker 容器使用运行镜像(Windows)

bash 复制代码
-- 如果不指定版本默认拉取最新
docker pull flink:1.19.1-scala_2.12 

拉取完 会在Docker Desptop显示拉取的镜像

二、配置脚本(以Flink为例)

创建一个Flink

建立一个docker-compose.yml 文件

bash 复制代码
version: "3.8"
services:
  jobmanager:
    image: flink:1.19.1-scala_2.12
    container_name: jobmanager
    hostname: jobmanager
    ports:
      - "8081:8081"
      - "6123:6123"
    command: jobmanager
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
        parallelism.default: 1
    volumes:
      - ./data/jobmanager:/opt/flink/data
      - ./logs/jobmanager:/opt/flink/log

  taskmanager:
    image: flink:1.19.1-scala_2.12
    container_name: taskmanager
    hostname: taskmanager
    depends_on:
      - jobmanager
    command: taskmanager
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
        taskmanager.numberOfTaskSlots: 2
    ports:
      - "6121:6121"
      - "6122:6122"
    volumes:
      - ./data/taskmanager:/opt/flink/data
      - ./logs/taskmanager:/opt/flink/log

可以吧所有需要的镜像都配置成yml管理方法,方便管理。

三、运行容器

进入终端cmd,Docker Desptop 都可以执行 。

第一步:进入flink目录,yml文件存放flink目录当中

bash 复制代码
cd D:\Docker\flink

第二步:运行docker-compose up -d启动服务

bash 复制代码
docker-compose up -d

第三步:验证

bash 复制代码
docker-compose ps
bash 复制代码
docker-compose ps

第四步:访问页面 http://localhost:8081

第五步:停止服务,运行(注意执行以下命令,Docker Desptop镜像也会被删除如下图)

bash 复制代码
docker-compose down

想停止服务 直接点击按钮就好了下图所示:

四、删除数据卷,可以加上-v参数

bash 复制代码
docker-compose down -v

docker-compose down -v 具体删除什么

会删除的:
  1. 容器(Containers) - 停止并删除 docker-compose.yml 中定义的所有容器

  2. 网络(Networks) - 删除 Docker Compose 创建的自定义网络

  3. 卷(Volumes) - 删除 Docker Compose 中定义的命名卷(因为加了 -v 参数)

不会删除的:
  1. docker-compose.yml 文件 - 配置文件会保留

  2. 镜像(Images) - 不会删除下载的镜像

  3. 绑定挂载(Bind Mounts) - 不会删除本地目录中的文件

  4. 未在 compose 中定义的资源 - 不会影响其他容器、网络等

详细解释:

1. 删除容器
复制代码
# 会删除这些容器(如果由该 compose 文件创建)
flink-jobmanager
flink-taskmanager
2. 删除卷

如果 docker-compose.yml 中有这样的定义:

复制代码
volumes:
flink-data:

那么 docker-compose down -v 会删除名为 flink-data 的卷。

3. 删除网络

会删除 Docker Compose 创建的项目网络,比如:

复制代码
yourprojectname_default

验证示例:

当前状态
bash 复制代码
# 查看容器
docker ps
# 应该看到 flink-jobmanager 和 flink-taskmanager

# 查看卷
docker volume ls
# 可能看到一些 flink 相关的卷

# 查看网络
docker network ls
# 可能看到 flink_default 网络
执行命令
bash 复制代码
cd D:\Docker\yml
docker-compose down -v
命令执行后
bash 复制代码
# 再次查看
docker ps
# 容器已删除

docker volume ls
# 相关的卷已删除

docker network ls
# 相关的网络已删除

# 但是你的文件还在!
dir
# docker-compose.yml 文件还在!

如果你担心数据丢失:

情况1:使用绑定挂载(推荐)
bash 复制代码
# docker-compose.yml
volumes:
  - ./data:/opt/flink/data  # 这是绑定挂载

安全docker-compose down -v 不会删除 ./data 目录中的文件

情况2:使用命名卷
复制代码
# docker-compose.yml
volumes:
- flink-data:/opt/flink/data # 这是命名卷

⚠️ 警告docker-compose down -v 会删除 flink-data 卷中的所有数据

不同的 down 命令对比:
命令 删除容器 删除网络 删除卷 删除镜像
docker-compose down
docker-compose down -v
docker-compose down --rmi all
docker-compose down --rmi all -v

安全建议:

如果你只是想重启
bash 复制代码
# 只删除容器和网络,保留数据卷
docker-compose down
docker-compose up -d
如果你要彻底清理
bash 复制代码
# 删除所有东西,包括数据
docker-compose down -v
如果你想保留数据但完全重置:
bash 复制代码
# 先备份数据
cp -r data data_backup

# 然后清理
docker-compose down -v

# 还原数据
cp -r data_backup/* data/
检查 yml 文件是否还在:
bash 复制代码
# 在 Windows PowerShell 中
cd D:\Docker\yml

# 执行清理
docker-compose down -v

# 查看文件是否还在
dir *.yml

# 或者查看详细文件信息
Get-ChildItem -File
相关推荐
Leinwin4 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382504 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇4 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7594 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣4 小时前
智能体选型实战指南
运维·人工智能
yy55274 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ5 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔7 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密7 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20157 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑