原文地址:How to Set Up MySQL in a Docker Container
原文作者:Joshua Otwell
如果你想建立一个MySQL数据库来为网站、博客或应用程序存储数据,你可以使用Docker容器。这是很简单的事情。并且这对刚开始接触MySQL和后端网络开发的初学者来说是一个合适的练习。
让我们看看Docker容器到底是什么,以及你如何使用它来设置MySQL。
什么是Doceker 容器?
Docker容器是一个独立的软件开发环境,包括运行一个应用程序的所有必要组件。这可以包括应用程序代码、库和其他依赖性。
容器之间和主机操作系统之间是隔离的,所以它们不能干扰或访问其他容器或主机操作系统。这使它们成为打包和部署应用程序的理想选择。
Docker容器是使用Docker镜像创建的。这只是一个创建容器的模板。你可以创建你自己的Docker镜像,或者使用别人创建的镜像。当你从Docker镜像中创建一个容器时,你可以通过添加你自己的文件、设置和应用程序来定制它。
在本教程中,我们将研究如何在Docker容器中设置MySQL。
请注意,命令可能根据安装的操作系统而有所不同。这个例子是使用基于Arch Linux的操作系统和MySQL 8.0制作的。
- 第一步:安装Docker
如果你还没有准备好,那么请安装Docker。首先,确保操作系统的安装是最新的,在一个新的终端窗口中使用以下命令。
$ sudo pacman -Syu
复制
一旦验证了系统是最新的,就安装Docker。
$ sudo pacman -S docker
复制
- 第2步:在Docker中安装MySQL
启动Docker服务并运行 "Docker images "命令以检查MySQL当前是否已安装。
[root@docker ~]# docker images
复制
- 第3步:启动一个MySQL服务器实例
MySQL可以作为一个实例运行。使用ID以分离模式运行容器,并命名Docker容器。MySQL默认使用3600:3306端口,但是要保证密码的正确。在这个例子中,它被简单地设置为 “密码”。
[root@docker ~]# docker container run -d -name mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql:latest
复制
由于mysql:latest在本地不可用,该命令将开始下载可用的最新版本的MySQL。
用 "Docker ps "命令检查MySQL容器是否正在运行。
[root@docker ~]# docker ps
复制
这个命令应该显示容器ID,以及MySQL容器正在运行的端口。
样本输出:
CONTAINER ID IMAGE NAMES COMMAND CREATED STATUS PORTS 6bcd1d829631 mysql:latest "docker-entrypoint..." 5 seconds ago Up 3 seconds 0.0.0:3306->3306/tcp, 33060/tcp
复制
- 第4步:SSH进入MySQL容器
现在,我们需要用 "Docker exec "命令SSH进入MySQL容器,这是一个在运行的容器中运行新命令的命令。之后,我们将需要登录MySQL来创建一个新的数据库。
[root@docker ~]# docker exec -it mysqldb bash
复制
使用在步骤2中制作容器时创建的密码登录到MySQL容器中,这里我们的密码是 “password”。另外,确保IP后面没有空格,因为IP后面的所有内容都是输入的密码的一部分。
[root@6bcd1d829631]# mysql -u root -ppassword
复制
当发出这个命令时,你通常会遇到一个警告:在命令行上使用密码是不安全的。为了绕过这个警告信息,请使用mysql_config_editor工具。
- 第5步:建立一个数据库
现在我们在MySQL中,使用命令 "show databases "来列出所有可用的数据库。
mysql> show databases;
复制
现在用 "创建数据库 "命令创建一个数据库,并为该数据库取一个名字。在这个例子中,我们将使用名称 “newdatabasename”。
mysql>创建数据库newdatabasename
复制
如果我们使用 "show databases "命令,新数据库现在应该出现在列表中。请看下面的输出示例。
+------------------------------+ | Database | +------------------------------+ | information_schema | | mysql | | newdatabasename | | performance_schema | | sys | +------------------------------+
复制
这个数据库可以很容易地用 "drop database "命令来删除,后面跟的是数据库的名字。
mysql> drop database newdatabasename;
复制
- 第6步:安装MySQL Workbench
MySQL工作台是一个用于管理的图形化工具,它可用于大多数操作系统。请确保安装与你的操作系统相匹配的版本。
请注意,并非所有版本的Workbench和MySQL都是兼容的,所以使用最新的版本将有助于消除兼容性问题。
结论
Docker可以让你运行隔离的容器,以提高应用程序的性能,而MySQL的可扩展性极强,通常用于数据库管理。
它们结合在一起,对于开始从事后端网络开发的网络开发人员来说是一个很好的组合。如果你想开始使用MySQL和Docker,请遵循帖子中列出的六个步骤,并访问Docker Hub获取最新的MySQL镜像。
评论
