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
相关推荐
鹏大师运维7 小时前
为什么信创电脑装软件总提示“软件包架构不匹配”?
linux·运维·架构·国产化·麒麟·deb·统信uos
007张三丰7 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
weixin_604236678 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
鹤落晴春9 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
梦梦代码精9 小时前
2026年PHP开源商城系统实测对比:架构、多商户、商用授权,谁才是真·省心?
vue.js·docker·架构·开源·代码规范
AI智图坊9 小时前
多件装组合SKU图的批量生产效率分析:从PS手工到AI自动化的工作流改造
大数据·运维·人工智能·gpt·ai作画·自动化·aigc
鹤落晴春12 小时前
【K8s】Pod调度、configMaps
云原生·容器·kubernetes
极客先躯13 小时前
高级java每日一道面试题-2026年02月02日-实战篇[Docker]-如何实现容器的持久化存储?
docker·容器·面试宝典·持久化·存储·韵味·java高级面试题
云计算磊哥@14 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
天天进步201514 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket