Docker: 使用容器化数据库

server/2024/10/18 12:28:54/

使用容器数据库

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

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

本指南使用 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.ppmy.cn/server/53724.html

相关文章

5.How Fast Should You Be When Learning?(你应该用多快的速度学习? (二))

Are you failing to reach an ideal or you dont know what the ideal is? 你是否没有达到理想状态,或者不知道理想状态是什么? A lot of learing involves having a mental representation of what the ideal performance ought to be, a method or approach t…

Linux中--prefix命令使用及源码安装

1.prefix - 指定文件安装路径通常与configure搭配使用: 在安装源码时可使用下述命令指定源码安装路径: bogon:httpd-2.4.59 wancanchishenma$./configure --prefix/usr/local/apache 2.源码的安装一般由3个步骤组成:配置(configur…

Spring面试题

文章目录 注解Component与Bean的区别Autowired 和 Resource 的区别是什么?使用方式: BeanBean 是线程安全的吗?Bean的作用域Bean 的生命周期了解么?1. Bean 实例化2. 属性赋值3. 初始化4. Bean 销毁 结合代码理解Bean的生命周期1. Bean 实例化2. Bean 属…

DevExpress WPF中文教程:Grid - 如何排序、分组、过滤数据(设计时)?

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

恢复策略(上)-撤销事务(UNDO)、重做事务(REDO)

一、引言 利用前面所建立的冗余数据,即日志和数据库备份,要将数据库从一个不一致的错误状态恢复到一个一致性状态,还需要相关的恢复策略,不同DBMS的事务处理机制所采用的缓冲区管理策略可能不同,发生故障后的数据库不…

Unity之Hololens2开发MRTK Profile详解

前言 配置 MRTK 的主要方式之一是使用基础包中的配置文件。 场景中的主要 MixedRealityToolkit 对象具有活动配置文件 - 一个 ScriptableObject。 顶级 MRTK 配置配置文件包含主核心系统的每个核心的子配置文件数据,每个主核心系统都旨在配置其相应子系统的行为。 此外,这些…

一二三应用开发平台应用开发示例(5)——列表视图、树视图、树表视图、树参照视图配置

列表视图 接下来进入列表视图配置,创建的操作方式跟前面相同,如下图所示: 保存后回到列表,点击行记录的配置按钮,进入如下配置页面 可以看到该配置界面相比新增、修改、查看那三个视图要复杂得多,配置项…

MySQL表解锁

查看锁信息 show full processlist 如果一个表被锁定了,会有一个 “Waiting for table metadata lock” 的提示,表明该表正在等待锁定。 解锁表 删除state上有值的事务 kill query 事务id 表解锁完成