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
相关推荐
雪可问春风21 小时前
docker环境部署
运维·docker·容器
lwx91485221 小时前
Linux-Shell算术运算
linux·运维·服务器
翻斗包菜21 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
somi71 天前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
双份浓缩馥芮白1 天前
【Docker】Linux 迁移 docker 目录(软链接)
linux·docker
海的透彻1 天前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
路溪非溪1 天前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
航Hang*1 天前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
北方的流星1 天前
华三网络设备的路由重定向配置
运维·网络·华三
河南博为智能科技有限公司1 天前
蓄电池在线监测系统-守护数据中心安全防线
运维·边缘计算