当前位置: 首页 > news >正文

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 中用于存储和管理数据的机制,使得数据能够在容器的生命周期之外持久化。数据库容器可以利用数据卷来持久化数据库文件&#xff…...

[数据集][目标检测]轴承缺陷划痕检测数据集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打包的过程中&#xff0c;有时候我们需要添加一些本地的jar包&#xff0c;并将其打到jar包的lib中。 首先将需要本地的jar包&#xff0c;放到项目的的src/resources/lib下面。 然后在对应的项目的pom中加入一下依赖&#xff1a; <dependency><groupId>…...

从TiDB迁移到OceanBase的实践分享

本文来自OceanBase热心用户的分享 近期&#xff0c;我们计划将业务数据库从TiDB迁移到OceanBase&#xff0c;但面临的一个主要挑战是如何更平滑的完成这一迁移过程。经过研究&#xff0c;了解到OceanBase提供的OMS数据迁移工具能够支持从TiDB到OceanBase的迁移&#xff0c;并且…...

DL00765-光伏故障检测高分辨率无人机热红外图像细粒度含数据集4000+张

光伏发电作为清洁能源的重要组成部分&#xff0c;近年来得到了广泛应用。然而&#xff0c;随着光伏电站规模的扩大&#xff0c;光伏组件在运行过程中可能会出现各种故障&#xff0c;如热斑、遮挡、接线盒故障等。这些故障不仅会影响光伏电站的发电效率&#xff0c;还可能导致更…...

CICD流水线

一、CICD流水线简介 CICD概念 CI/CD流水线是现代软件开发的一个核心概念&#xff0c;它涉及自动化和管理软件从开发到部署的整个生命周期 概念定义 具体有三点&#xff1a;持续集成、持续交付、持续部署 流水线组成为&#xff1a;代码提交、测试、构建、部署、结果通知 二…...

Sass/Scss基础

安装sass npm install -g sass Sass/Scss释义 ASS版本3.0之前的后缀名为.sass&#xff0c;而版本3.0之后的后缀名.scss。 Sass (Syntactically Awesome Stylesheets) 是一个最初由 Hampton Catlin 设计并由 Natalie Weizenbaum 开发的层叠样式表语言。 Sass 是一个由buby语言编…...

【sx sb sz】Centos/Linux sx、sb、sz命令详细介绍

简介 系统版本&#xff1a;Centos7.6 软件版本&#xff1a;lrzsz 0.12.20 sx、sb、sz命令属于lrzsz程序的内容&#xff0c;是使用纠错协议&#xff08;ZMODEM、YMODEM、XMODEM&#xff09;通过拨号串行端口将一个或多个文件发送到在 PC-DOS、CP/M、Unix、VMS 及其他操作系统下运…...

【网络层】IP报文解析和网段划分

文章目录 网络层的作用IP协议协议报头格式网段划分DHCPCIDR划分方案 IP地址的数量限制私有IP地址和公网IP地址LAN和WAN 路由 网络层的作用 前面学习了应用层和传输层&#xff0c;应用层的作用是为用户和应用程序提供网络服务&#xff0c;传输层的作用是提供端口到端口的通信服…...

[GXYCTF2019]禁止套娃1

打开题目 进行常规的检测漏洞&#xff0c;扫描目录发现存在.git文件夹下的文件存在 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])) { if (!preg_match(/data:\/\/|filter:\/\/|php:\/\/|phar:\/\…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...