Docker 在 Windows 系统下的使用指南:数据卷和数据库
Docker 在 Windows 系统下的使用指南:数据卷和数据库
Docker 提供了强大的功能来创建、管理和持久化数据。数据卷是 Docker 中用于存储和管理数据的机制,使得数据能够在容器的生命周期之外持久化。数据库容器可以利用数据卷来持久化数据库文件,确保数据的持久性。本文将介绍如何在 Windows 系统上使用 Docker 来处理数据卷和运行数据库容器。
1. Docker 数据卷
1.1 什么是数据卷?
数据卷是 Docker 提供的一种机制,用于在容器之间共享和持久化数据。数据卷可以保存在宿主机的文件系统中,也可以在多个容器之间共享。
1.2 创建和使用数据卷
创建数据卷
docker volume create myvolume
这个命令会创建一个名为 myvolume 的数据卷。
查看数据卷
docker volume ls
删除数据卷
在删除数据卷之前,请确保它没有被任何容器使用:
docker volume rm myvolume
1.3 在容器中使用数据卷
挂载数据卷到容器
docker run -d -v myvolume:/data --name mycontainer myimage
这个命令将数据卷 myvolume 挂载到容器的 /data 目录中。
挂载宿主机目录到容器
如果你希望将宿主机上的某个目录挂载到容器中,可以使用以下命令:
docker run -d -v C:\path\to\host\dir:/data --name mycontainer myimage
这个命令将宿主机的 C:\path\to\host\dir 目录挂载到容器的 /data 目录中。
2. 在 Docker 中运行数据库
2.1 运行一个 MySQL 数据库容器
拉取 MySQL 镜像
docker pull mysql:latest
运行 MySQL 容器
docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD=rootpassword -v mysql-data:/var/lib/mysql mysql:latest
在这个命令中:
-d表示以后台模式运行容器。-p 3306:3306将宿主机的 3306 端口映射到容器的 3306 端口。--name mysql-container指定容器的名称。-e MYSQL_ROOT_PASSWORD=rootpassword设置 MySQL 的 root 密码。-v mysql-data:/var/lib/mysql将数据卷mysql-data挂载到 MySQL 数据目录中。
连接到 MySQL 数据库
可以使用 MySQL 客户端工具(如 MySQL Workbench)连接到数据库:
- 主机:
localhost - 端口:
3306 - 用户名:
root - 密码:
rootpassword
2.2 运行一个 PostgreSQL 数据库容器
拉取 PostgreSQL 镜像
docker pull postgres:latest
运行 PostgreSQL 容器
docker run -d -p 5432:5432 --name postgres-container -e POSTGRES_PASSWORD=rootpassword -v postgres-data:/var/lib/postgresql/data postgres:latest
在这个命令中:
-d表示以后台模式运行容器。-p 5432:5432将宿主机的 5432 端口映射到容器的 5432 端口。--name postgres-container指定容器的名称。-e POSTGRES_PASSWORD=rootpassword设置 PostgreSQL 的 root 密码。-v postgres-data:/var/lib/postgresql/data将数据卷postgres-data挂载到 PostgreSQL 数据目录中。
连接到 PostgreSQL 数据库
可以使用 PostgreSQL 客户端工具(如 pgAdmin)连接到数据库:
- 主机:
localhost - 端口:
5432 - 用户名:
postgres - 密码:
rootpassword
3. Docker Compose 配置
Docker Compose 使得配置和管理多容器应用变得更加容易。以下是一个包含数据卷和数据库的 Docker Compose 示例配置。
3.1 创建 docker-compose.yml
version: '3'
services:web:image: nginxports:- "8080:80"volumes:- web-data:/usr/share/nginx/htmldb:image: postgres:latestenvironment:POSTGRES_PASSWORD: rootpasswordvolumes:- postgres-data:/var/lib/postgresql/dataports:- "5432:5432"volumes:web-data:postgres-data:
在这个配置文件中:
web服务使用 Nginx 镜像,并将数据卷web-data挂载到容器的/usr/share/nginx/html目录。db服务使用 PostgreSQL 镜像,并将数据卷postgres-data挂载到 PostgreSQL 数据目录。
3.2 启动服务
在 docker-compose.yml 文件所在目录中运行:
docker-compose up
3.3 停止服务
docker-compose down
4. 常见问题与解决
4.1 数据卷数据丢失
如果数据丢失,检查以下几点:
- 确保容器正在使用正确的数据卷。
- 确保数据卷没有被错误地删除或重新创建。
4.2 容器无法连接到数据库
确保:
- 数据库服务正在运行。
- 数据库端口正确映射。
- 数据库配置(如用户名、密码)正确。
通过以上指南,你应该能够在 Windows 系统上使用 Docker 进行数据卷的管理和数据库容器的配置。Docker 的数据卷和数据库容器使得应用的开发和部署变得更加灵活和高效。如果有更多问题或需要进一步的帮助,请随时提问!
相关文章:
Docker 在 Windows 系统下的使用指南:数据卷和数据库
Docker 在 Windows 系统下的使用指南:数据卷和数据库 Docker 提供了强大的功能来创建、管理和持久化数据。数据卷是 Docker 中用于存储和管理数据的机制,使得数据能够在容器的生命周期之外持久化。数据库容器可以利用数据卷来持久化数据库文件ÿ…...
[数据集][目标检测]轴承缺陷划痕检测数据集VOC+YOLO格式1166张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1166 标注数量(xml文件个数):1166 标注数量(txt文件个数):1166 标注…...
将本地微服务发布到docker镜像二:
上一篇文章我们介绍了如何将一个简单的springboot服务发布到docker镜像中,这一篇我们将介绍如何将一个复杂的微服务(关联mysql、redis)发布到docker镜像。 我们将使用以下两种不同的方式来实现此功能。 redis、mysql、springboot微服务分开…...
前端构建工具|vite快速入门
认识vite vite组成部分 Vite是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成: 一个开发服务器,它基于 原生 ES 模块 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。一…...
拯救PyCharm:击退IDE内存泄漏的策略
拯救PyCharm:击退IDE内存泄漏的策略 PyCharm,作为一款功能强大的集成开发环境(IDE),在处理大型项目或长时间开发过程中,可能会遇到内存泄漏的问题,导致IDE运行缓慢甚至崩溃。本文将提供一系列解…...
在vue3的开发环境中为什么使用vite而不是用webpack
1、vite在开发阶段没有打包过程,直接启动一个服务器 2、请求一个模块到开发服务器 3、开发服务器编译模块,根据页面用所需要的依赖去加载文件 4、加载完成后,开发服务器把编译的结果返回给页面 这使得提高了我们在开发阶段运行的效率 vite是…...
mybatis结合generator进行分页插件PluginAdapter开发
mybatis结合generator生成的代码没有分页的功能,可以尝试自己继承分页插件PluginAdapter,进行开发,实现自己的分页插件这样generator生产的代码 带分页功能了。 MyBatis MySQL自动生成带分页插件 继承PluginAdapter类,实现相关方…...
面试:ArrayList和LinkedList
ArrayList和LinkedList是什么? ArrayList: ArrayList是Java集合框架中的一个类,它实现了List接口,底层基于数组实现。ArrayList的特点是支持动态数组,可以自动扩容,适合顺序访问和随机访问。LinkedList&am…...
【uniapp】uniapp+vue2微信小程序实现分享功能
uniappvue2做的微信小程序实现分享功能 问题描述 uniappvue2做的微信小程序,发布以后点击右上角三个点,分享小程序的时候,转发和分享按钮都是灰色 解决方案 转发、分享、复制链接这几个功能需要自己来手动写方法,考虑到每个页…...
WEB渗透Web突破篇-目录爆破
开源 工具名称下载地址工具描述cansinahttps://github.com/deibit/cansina网站的敏感目录发掘工具Cewlcewl | Kali Linux Tools你可以给它的爬虫指定URL地址和爬取深度,接下来Cewl会给你返回一个字典文件dirsearchhttps://github.com/maurosoria/dirsearch目录扫描…...
Windows设备文件同步平台
使用咨询: 扫码添加QQ 永久免费: Gitee下载最新版本 使用说明: CSDN查看使用说明 功能: 定时(全量采集or增量采集) SCADA,MES等系统采集工控机,办公电脑文件. 优势1: 开箱即用. 解压直接运行.插件集成下载. 优势2: 批管理设备. 配置均在后台配置管理. 优势3: 无人值守 采集端…...
用九方智投学习机,学会应对回撤风险
(九方智投属于九方智投控股有限公司(9636.HK)旗下品牌) 近期国内海风项目密集落地,行业景气度提升。2023年下半年以来,各省加快建设“十四五”规划,我国海风建设重新迈入快车道&#x…...
maven打包加入本地jar包
在使用maven打包的过程中,有时候我们需要添加一些本地的jar包,并将其打到jar包的lib中。 首先将需要本地的jar包,放到项目的的src/resources/lib下面。 然后在对应的项目的pom中加入一下依赖: <dependency><groupId>…...
从TiDB迁移到OceanBase的实践分享
本文来自OceanBase热心用户的分享 近期,我们计划将业务数据库从TiDB迁移到OceanBase,但面临的一个主要挑战是如何更平滑的完成这一迁移过程。经过研究,了解到OceanBase提供的OMS数据迁移工具能够支持从TiDB到OceanBase的迁移,并且…...
DL00765-光伏故障检测高分辨率无人机热红外图像细粒度含数据集4000+张
光伏发电作为清洁能源的重要组成部分,近年来得到了广泛应用。然而,随着光伏电站规模的扩大,光伏组件在运行过程中可能会出现各种故障,如热斑、遮挡、接线盒故障等。这些故障不仅会影响光伏电站的发电效率,还可能导致更…...
CICD流水线
一、CICD流水线简介 CICD概念 CI/CD流水线是现代软件开发的一个核心概念,它涉及自动化和管理软件从开发到部署的整个生命周期 概念定义 具体有三点:持续集成、持续交付、持续部署 流水线组成为:代码提交、测试、构建、部署、结果通知 二…...
Sass/Scss基础
安装sass npm install -g sass Sass/Scss释义 ASS版本3.0之前的后缀名为.sass,而版本3.0之后的后缀名.scss。 Sass (Syntactically Awesome Stylesheets) 是一个最初由 Hampton Catlin 设计并由 Natalie Weizenbaum 开发的层叠样式表语言。 Sass 是一个由buby语言编…...
【sx sb sz】Centos/Linux sx、sb、sz命令详细介绍
简介 系统版本:Centos7.6 软件版本:lrzsz 0.12.20 sx、sb、sz命令属于lrzsz程序的内容,是使用纠错协议(ZMODEM、YMODEM、XMODEM)通过拨号串行端口将一个或多个文件发送到在 PC-DOS、CP/M、Unix、VMS 及其他操作系统下运…...
【网络层】IP报文解析和网段划分
文章目录 网络层的作用IP协议协议报头格式网段划分DHCPCIDR划分方案 IP地址的数量限制私有IP地址和公网IP地址LAN和WAN 路由 网络层的作用 前面学习了应用层和传输层,应用层的作用是为用户和应用程序提供网络服务,传输层的作用是提供端口到端口的通信服…...
[GXYCTF2019]禁止套娃1
打开题目 进行常规的检测漏洞,扫描目录发现存在.git文件夹下的文件存在 <?php include "flag.php"; echo "flag在哪里呢?<br>"; if(isset($_GET[exp])) { if (!preg_match(/data:\/\/|filter:\/\/|php:\/\/|phar:\/\…...
告别Windows 11卡顿烦恼:如何用Win11Debloat让系统性能提升60%
告别Windows 11卡顿烦恼:如何用Win11Debloat让系统性能提升60% 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutte…...
深度解析PPP协议:定义、核心功能、工作流程与应用场景
深度解析PPP协议:定义、核心功能、工作流程与应用场景摘要一、PPP协议:基础定义1.1 PPP协议:是什么1.2 PPP协议:核心功能二、PPP协议:基本工作流程(完整版流程图)2.1 PPP工作流程图2.2 PPP完整工…...
Arduboy光线投射渲染库:8位MCU上的实时3D引擎
1. ArduboyRaycast 库概述ArduboyRaycast 是一个专为 Arduboy 平台设计的轻量级光线投射(Raycasting)渲染库,面向资源极度受限的 8-bit AVR 微控制器(ATmega32U4,16MHz,2.5KB RAM,32KB Flash&am…...
【2026年阿里巴巴集团暑期实习- 4月8日-工程岗-第一题- 可删去的字符串】(题目+思路+JavaC++Python解析+在线测试)
题目内容 给你 $ n $ 个字符串。我们称某个字符串 $ s_i $ 是“可删去的”,当且仅当存在两个下标 $ j, k (j \neq k) $,满足 $ s_j + s_k = s_i $。换句话说,我们称某个字符串是“可删去的”,当且仅当它能由两个来自原字符串序列中不同位置的非空字符串拼接而成。 你的任…...
Goreman性能优化:提升多进程管理效率的10个最佳实践
Goreman性能优化:提升多进程管理效率的10个最佳实践 【免费下载链接】goreman foreman clone written in go language 项目地址: https://gitcode.com/gh_mirrors/go/goreman Goreman作为用Go语言实现的Foreman克隆工具,是一款轻量级的多进程管理…...
智见未来 | 融合传统视觉与深度学习的AI水位识别技术实践分享
背景在水利工程数字化转型与智能化监管的宏观背景下,实时、精准的水位监测已成为防洪排涝、水资源调配的核心支撑。近年来,国家持续推动数字化与智能化发展。2025年发布的《国民经济和社会发展第十五个五年规划建议》提出,要深入推进数字中国…...
HunyuanVideo-Foley部署教程:RTX4090D专属优化版开箱即用完整指南
HunyuanVideo-Foley部署教程:RTX4090D专属优化版开箱即用完整指南 1. 环境准备与快速部署 HunyuanVideo-Foley是一款强大的视频生成与音效生成工具,本教程将指导您在RTX 4090D显卡上快速部署优化版镜像。这个专为24GB显存优化的版本,让您无…...
HTML 5段落
HTML5 段落 (Paragraphs) 学习笔记 在 HTML5 中,段落是文本内容的基本构建块。虽然核心标签 <p> 从 HTML4 继承而来,但 HTML5 在语义化结构、文本流控制以及与语义标签的配合方面有了更明确的规范。一、核心标签:<p> 1. 基本用法…...
Qwen3.5-9B-AWQ-4bit VMware虚拟机安装Ubuntu及GPU环境配置
Qwen3.5-9B-AWQ-4bit VMware虚拟机安装Ubuntu及GPU环境配置 1. 准备工作 在开始之前,我们需要确认几个关键事项: 主机硬件配置:确保你的物理机至少16GB内存(推荐32GB),并配备NVIDIA GPU(支持…...
2.2MySQL 在电商全链路中的高频应用场景
2.2MySQL 在电商全链路中的高频应用场景 开篇:为什么电商行业90%的业务数据都存在MySQL里 我第一次接触电商数据时,公司用的是Oracle,听说一年授权费几百万。后来跳槽到一家创业公司,用的是MySQL,免费、轻量、跑得也挺…...
