Docker: 使用容器化数据库

使用容器化数据库

使用本地容器化数据库提供了灵活性和简易的设置,使您能够在不需要传统数据库安装开销的情况下,紧密模拟生产环境。Docker 简化了这一过程,只需几条命令就可以在隔离的容器中部署、管理和扩展数据库。

在本指南中,您将学习如何:

  • 运行本地容器化数据库
  • 访问容器化数据库的 shell
  • 从主机连接到容器化数据库
  • 从另一个容器连接到容器化数据库
  • 将数据库数据保存在卷中
  • 构建自定义的数据库镜像
  • 使用 Docker Compose 运行数据库

本指南使用 MySQL 镜像作为示例,但这些概念同样适用于其他数据库镜像。

先决条件

要按照本指南进行操作,您必须安装 Docker。要安装 Docker,请参阅 Get Docker。

运行本地容器化数据库

大多数流行的数据库系统,包括 MySQL、PostgreSQL 和 MongoDB,在 Docker Hub 上都有 Docker 官方镜像。这些镜像是一组经过精心策划的镜像,遵循最佳实践,确保您能够访问最新的功能和安全更新。要开始使用,请访问 Docker Hub 并搜索您感兴趣的数据库。每个镜像页面提供了详细的运行容器、定制设置和配置数据库的说明。有关本指南中使用的 MySQL 镜像的更多信息,请参阅 Docker Hub MySQL 镜像页面。

要运行数据库容器,您可以使用 Docker Desktop GUI 或 CLI。

使用 CLI 运行容器

在终端中运行以下命令:

docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=mydb -d mysql:latest

在此命令中:

  • --name my-mysql 为容器分配名称 my-mysql,便于引用。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw 设置 MySQL 的 root 密码为 my-secret-pw。将 my-secret-pw 替换为您选择的安全密码。
  • -e MYSQL_DATABASE=mydb 可选地创建名为 mydb 的数据库。您可以将 mydb 更改为所需的数据库名称。
  • -d 以分离模式运行容器,意味着它在后台运行。
  • mysql:latest 指定您要使用 MySQL 镜像的最新版本。

要验证容器是否正在运行,请在终端中运行 docker ps

访问容器化数据库的 shell

当您在 Docker 容器中运行数据库时,可能需要访问其 shell 以管理数据库、执行命令或执行管理任务。Docker 提供了一种简单的方法来使用 docker exec 命令实现这一点。此外,如果您更喜欢图形界面,也可以使用 Docker Desktop 的 GUI。

使用 CLI 访问 MySQL 容器的终端

要使用 CLI 访问 MySQL 容器的终端,可以使用以下 docker exec 命令:

docker exec -it my-mysql bash

在此命令中:

  • docker exec 告诉 Docker 您希望在正在运行的容器中执行命令。
  • -it 确保您访问的终端是交互式的,因此您可以在其中输入命令。
  • my-mysql 是您的 MySQL 容器的名称。如果在运行容器时使用了不同的名称,请使用该名称。
  • bash 是您希望在容器内运行的命令。它打开一个 bash shell,允许您与容器的文件系统和安装的应用程序进行交互。

执行此命令后,您将获得 MySQL 容器内的 bash shell 访问权限,从那里可以直接管理 MySQL 服务器。您可以运行 exit 返回终端。

一旦您访问了容器的终端,可以运行容器内的任何工具。以下示例展示了如何在容器内使用 mysql 列出数据库:

mysql -u root -p
Enter password: my-secret-pwmysql> SHOW DATABASES;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AppConfig文件中加入自定义的节点

1.需要添加System.Configuration.dll引用&#xff0c;才可以在C#中读取appConfig文件. <?xml version"1.0" encoding"utf-8"?> <configuration> <startup> <supportedRuntime version"v4.0" sku".NETF…

Java测试类

在Java中&#xff0c;为了编写测试类&#xff0c;通常使用JUnit框架。 1. 首先&#xff0c;创建一个名为Calculator的简单Java类&#xff0c;它包含一个方法add用于计算两个整数的和&#xff1a; public class Calculator {public int add(int a, int b) {return a b;} } 2.…

springboot vue 开源 会员收银系统 (8) 收银台、开卡结算及订单的优化升级

前言 完整版演示 开发版演示 在之前的开发进程中&#xff0c;我们基本搭建了收银台的基础。这次着重梳理一下收银台相关功能的开发及优化情况。 1.会员查询与开卡 收银台新增加了会员筛选功能 并且会员和会员卡是一对多的关系 理论可以开无数张卡 默认选择一张卡 会员卡选择…

stm32学习笔记---TIM输出比较(代码部分)PWM驱动LED呼吸灯/舵机/直流电机

目录 第一个工程&#xff1a;PWM驱动LED呼吸灯 PWM.c 初始化PWM步骤 TIM的库函数 TIM_OCStructInit TIM_CtrlPWMOutputs TIM_CCxCmd和TIM_CCxNCmd TIM_SelectOCxM 四个单独更改CCR寄存器值的函数 四个初始化定时器的通道的函数 给结构体一次性都赋初始值的函数 如何…

从写下第1个脚本到年薪40W,我的测试开发心路历程!

对于任何职业来说&#xff0c;薪资始终都会是众多追求的重要部分。前几年测试行业还是风口&#xff0c;但是随着不断新鲜血液的加入&#xff0c;再加上就业大环境不好&#xff0c;企业也都在“降本增效”。目前内卷也是越来越激烈。不得不承认当下的现状&#xff0c;已经不仅仅…

引导过程与服务器控制

一、引导过程 1.开机自检 服务器主机开机以后&#xff0c;将根据主板 BIOS 中的设置对 CPU&#xff08;Central Processing Unit&#xff0c; 中央处理器&#xff09;、内存、显卡、键盘等设备进行初步检测&#xff0c;检测成功后根据预设的启动顺序移 交系统控制权&#xff0c…

window.location.pathname和window.location.href

1.window.location.pathname window.location.pathname 是一个 JavaScript 属性&#xff0c;它返回当前页面的 URL 中的路径部分。这个属性是 window.location 对象的一部分&#xff0c;window.location 对象包含了当前页面的 URL 信息。 例如&#xff0c;如果你的页面 URL 是…

AI X HI:塑造数智时代的人类镜像,网易这场分享不能错过!

2001 年&#xff0c;网易正式成立在线游戏事业部。从那以后&#xff0c;网易孵化了许多出圈的精品游戏&#xff0c;跻身成为全球七大游戏公司之一。这些游戏产品之所以能够广受玩家好评&#xff0c;并保持常青&#xff0c;一方面源于十年磨一剑的精良品质&#xff0c;另一方面则…

[油猴脚本] Image To Ascii 快速转换审计网站图片中敏感信息插件

项目地址:https://github.com/MartinxMax/ImageToAscii 导入 将ImagetoAscii.user.js导入油猴 进行按照 访问网站分析图片 当鼠标靠近图片时会出现分析按钮 通过审查图片信息,我们可以快速发现这张图片存在PHP代码。 当然在渗透测试中,你可以快速查看上传的图片木马中PHP代码…

PS系统教程30

图层蒙版组合使用 案例介绍 全选背景图-复制背景图粘贴背景图CtrlI反选背景色填充黑色快速选区工具框柱需要素材画笔涂抹白色 步骤截图 1-3 4-5 图层蒙版与渐变工具结合使用 案例2 注意 使用PS的渐变工具覆盖全部的原因可能包括操作不当或设置错误。 操作不当&#xff1…

【小学期】实体类设计——以学生管理系统为例

项目目录中的位置 将Student.java文件放在src/model目录中&#xff0c;即&#xff1a; student_management │ ├── src │ ├── model │ │ ├── Student.java // 这里是Student实体类 │ │ └── StudentDAO.java │ │ │ ├── view │ │ …

C++系列-String(三)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” assign 这个接口的目的是用一个新的值代替之前的那个值 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include<list> #include&l…

Oracle对用户敏感数据进行编码处理

由于系统运行时间比较长&#xff0c;没有对用户的身份证号、邮箱、手机号进行脱敏处理&#xff0c;后期对数据进行了编码。 更新表数据 sql UPDATE sys_staff SET MOBIL_PHONE CASEWHEN MOBIL_PHONE IS NULL THEN ELSE utl_raw.cast_to_varchar2(utl_encode.base64_encode(ut…

华三交换机的软件版本升级操作

升级操作很常见&#xff0c;掌握方法是关键 实验环境&#xff1a;1台华三S6520-EI交换机&#xff0c;版本从2432P03升级成2432P05。 整体思路&#xff1a; 1.先查验软件版本 2.官网下载对于设备型号的软件版本 3.配置交换机地址使得与电脑进行通信&#xff0c;使用TFTP/FTP工…

【绝对有用】c++ 将应该整型数组的值字符串化拼接、将字符串通过逗号分割开来并转化为整型、如何查找逗号的位置、字符串中根据区间取值

在 C 中&#xff0c;你可以使用 std::ostringstream 将整型数组的值转换为字符串并进行拼接。下面是一个简单的示例代码&#xff1a; #include <iostream> #include <sstream> #include <vector>std::string joinIntegers(const std::vector<int>&…

Swift 周报 第五十五期

文章目录 前言新闻和社区苹果公司据悉将推出密码管理应用三大指数涨跌不一&#xff0c;苹果重新夺回美股第二大上市公司宝座苹果iOS 18新动向&#xff1a;AI功能强化隐私保护&#xff0c;用户自主选择启用 提案通过的提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言…

微信小程序navigateTo异常(APP-SERVICE-SDK:Unknown URL)

背景 在开发小程序时&#xff0c;可能会用到banner&#xff0c;通过banner跳转至各种子页面。但是因为小程序自身的因素&#xff0c;有些是不允许的&#xff0c;比如通过banner跳转一个http/https链接。如果使用 wx.navigateTo完成跳转时&#xff0c;就会发生异常。 navigate…

解析json字符串的方法

java,json的序列化库&#xff1a; fastjsongson&#xff08;相对安全&#xff09;jacksonjsonlibkryo gson 反序列化fronjson 序列化&#xff1a;tojson

第二十八周代码

B3631 单向链表 题目链接 【参考代码】 list的简介及使用 80%通过率 #include <bits/stdc.h> using namespace std;int main() {list<int> list;list.push_back(1);int q;cin>>q;while(q--){int operation;cin>>operation;if(operation 1){int x,…

Java高手的30k之路|面试宝典|精通MySQL(一)

MySQL Server架构 组件详解 连接管理 连接处理&#xff1a;通过TCP/IP、Unix Socket、Named Pipe等协议接受客户端连接。使用线程池技术来高效地管理连接。认证和授权&#xff1a;在连接建立后&#xff0c;MySQL对用户进行认证&#xff0c;并根据用户权限执行相应操作。 查询…