Docker容器化的最重要功能之一是,它创建了一个有限的环境,用于在安装所有必需的依赖项和软件包的情况下运行应用程序。大多数应用程序需要后端数据库来存储数据点。Oracle提供了可在容器中运行MySQL的Docker映像,因此它成为测试数据库应用程序的理想选择。测试完成后,它将为轻量级的MySQL Image实例提供清理功能。
Docker允许您下载包含MySQL二进制文件和依赖项的映像,并创建一个虚拟文件系统。请注意,如果使用-rm标志启动Docker容器,则在停止容器后,整个文件系统以及容器实例将被删除,因此将该标志与run命令结合使用将为您提供自动清除功能,以测试您的应用程序。
在本文中,我们将看到如何创建MySQL Docker容器来测试您的应用程序。
下面的命令为MySQL映像创建一个具有最新版本的实例,并且-rm标志有助于在容器停止后消除容器以及文件系统。
sudo docker run −−rm −−name=mysql−test −e MYSQL_ALLOW_EMPTY_PASSWORD=yes −d mysql/mysql−server
在上面的命令中,−rm标志指示Docker守护进程在停止后删除Container文件系统。−name标志为容器提供名称。“ -e MYSQL_ALLOW_EMPTY_PASSWORD =是”指示容器创建一个空的root密码。
MySQL客户端程序使用本地套接字连接,即它们通过本地主机连接。要创建本地MySQL连接,可以使用以下命令。
sudo docker exec −it mysql−test mysql −uroot
该EXEC指令告诉码头工人守护进程来执行多克尔容器内指定的命令。-it标志指示Docker在交互式shell中打开Container。在Docker容器内执行的shell命令是“ mysql -uroot”。
在执行之前的步骤中的命令后,Docker会为Docker容器分配一个私有IP地址。它还在您的系统上创建一个网络接口。这些可以用作创建与服务的TCP / IP连接的端点。
除非您在两个端点之间创建TCP / IP连接,否则无法访问MySQL服务。为此,您需要找出系统和Docker容器实例中虚拟网络接口的IP地址。您可以使用以下命令进行操作。
要查找系统中网络接口的IP地址,请执行-
ip addr show docker0
使用上述命令获得的IP地址成为客户端应用程序将连接到的端点之一,并且将使用它来为MySQL创建用户。
要找出另一个端点,即MySQL的Docker容器实例的IP地址,可以使用以下命令:
sudo docker mysql−test
现在,使用这两个IP地址,可以继续前进并创建TCP / IP连接,并创建一个用户来运行客户端应用程序。
要使本地系统成为没有任何密码的root用户,可以使用以下命令。
在系统终端内,执行mysql-test Docker Container来访问mysql shell。
sudo docker exec −it mysql−test mysql −uroot
一旦您可以访问mysql shell,请在其中执行以下命令以root用户身份创建本地系统。
create user root@<virtual network interface IP> identified by '';
请注意,以上命令中使用的IP地址应该是在前面步骤中找到的本地计算机中的虚拟网络接口的IP地址。
要将所有访问权限授予上面创建的用户,请使用此命令。
grant all on *.* to root@<virtual network interface IP> with grant option;
要在执行所有测试之后执行自动清除,只需停止Stop Container并使用stop和rm命令将其删除即可。
总而言之,在本文中,我们讨论了如何创建和启动MySQL Docker容器以及如何通过在Linux机器上的虚拟网络接口和Docker容器之间创建TCP / IP连接来访问它。我们创建了root用户,并授予了对其的所有访问权限。
我正在用TypeScript创建一个名为“三个犯罪”的简单逻辑游戏。 在尝试在TypeScript中预先分配类型化数组时,我尝试执行以下操作: 它给出了错误“表达式项的检查格式”。 也尝试过这样做 而这产生了“无法将任何[]转换为‘罪犯’” 什么是'TypeScript'的方式来做到这一点?
问题内容: 我想创建一个包含一个或多个容器的Docker容器。Docker有可能吗? 问题答案: 在docker内部运行docker绝对是可能的。最主要的是,您将外部容器具有额外的特权(以开头),然后在该容器中安装docker。 查看此博客文章以获取更多信息:Docker-in-Docker。 本条目中描述了一种可能的用例。该博客介绍了如何在Jenkins Docker容器中构建Docker容器。
我这里有一个项目如下: 我现在在设计使用IoC容器,对src/usage 使用 上面的 src/services/ 下面的定义进行解耦。 我可以对src/services/目录下每个目录都创建一个IoC Container,然后也就是说我的项目中对不同的服务类型有不同的container。 然后在src/usage使用的时候,就需要导入多个container。 还是说只应该创建一个containe
问题内容: 我试图扩展到符合以创建的类型。最后,我希望有这样的东西可以打印整个字母: 目前,我正在使用类型来计算两个字符之间的距离。因为类型无法使用标量,所以我需要根据Character创建一个String,获取第一个标量的值,然后计算它们之间的距离: 即使这样,我仍然得到不符合协议和的错误。编译器似乎没有选择随附的关联类型: 我想念什么? 问题答案: 如前所述,由于a 可以由多个unicode标
如你所知,Android使用SQLite作为它的数据库管理系统。SQLite是一个嵌入app的一个数据库,它的确是非常轻量的。这就是为什么这是手机app的不错的选择。 尽管如此,它的操作数据库的API在Android中是非常原生的。你将会需要编写很多SQL语句和你的对象与ContentValues或者Cursors之间的解析过程。很感激的,联合使用Kotlin和Anko,我们可以大量简化这些。 当
A package is a directory with some code and a package.json file that provides information to Yarn about your package. Most packages use some kind of version control system. The most common one is git