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
相关推荐
Lvan的前端笔记2 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
姜鱼问生2 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*2 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
运维行者_4 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时4 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
IT研究所6 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
AIgorithmGEEK6 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil2086 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)6 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter6256 小时前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器