加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

如何在Docker中部署MySQL数据库?

发布时间:2019-08-20 01:49:30 所属栏目:编程 来源:极客24h
导读:Docker为陈设和测试应用措施和数据库提供了很多上风,这些应用措施和数据库是应用措施不行或缺的一部门,因此很值得进修如安在Docker容器中陈设和运行数据库。 本文中,我们会重点存眷如下重点: 为MySQL Docker容器建设Docker Compose YAML文件。 行使各
副问题[/!--empirenews.page--]

Docker为陈设和测试应用措施和数据库提供了很多上风,这些应用措施和数据库是应用措施不行或缺的一部门,因此很值得进修如安在Docker容器中陈设和运行数据库。

如安在Docker中陈设MySQL数据库?

本文中,我们会重点存眷如下重点:

为MySQL Docker容器建设Docker Compose YAML文件。

行使各类要领毗连到在容器上运行的MySQL数据库。

在Docker容器中建设并运行多个MySQL版本。

接下来,我们会一一先容这些。

1.为MySQL Docker容器建设Docker Compose YAML文件

起首,我们建设一个目次——db-docker,然后在这个目次中建设一个文件——docker-compose.yml。

  1. mkdir db-docker 
  2. cd db-docker 
  3. touch docker-compose.yml 

根基上,在这里,我们将指定我们将要行使的处事并配置与这些处事相干的情形变量。

我们将在本文中多次变动此文件。

在我们方才建设的docker-compose.yml文件中添加以下内容:

  1. version: '3' 
  2.  
  3. services: 
  4.  
  5.  mysql-development: 
  6.  image: mysql:8.0.17 
  7.  environment: 
  8.  MYSQL_ROOT_PASSWORD: helloworld 
  9.  MYSQL_DATABASE: testapp 
  10.  ports: 
  11.  - "3308:3306" 

我们将MySQL容器的名称指定为mysql-development,要行使的Docker镜像是mysql:8.0.17。 假如不将tag指定为8.0.17,则将回收最新的tag。

接下来我们必要指定的是情形变量,即用户,暗码和数据库。 假如您未指定用户,则默认环境下它将为root。

我们将行使helloworld作为暗码,行使testapp作为数据库。

另一个重要的是端口映射。 3308:3306暗示在端口3306的容器中运行的MySQL映射到端口3308的主机的当田主机。您也可以行使差异的端口。

此刻,在建设.yml文件之后,我们必要在.yml文件地址的统一目次中运行以下呼吁:

  1. docker-compose up 

这将拉取Docker镜像(假如镜像在当地不存在,它将从Docker Hub拉出)然后运行容器。

我们可以通过如下呼吁查察状态:

  1. docker-compose ps 
「Docker系列」 如安在Docker中陈设MySQL数据库?

这将表现容器的名称,呼吁和容器的状态,譬喻,它表现容器正在运行。 它还表现了端口映射。

在下一步中,我们将毗连到此MySQL容器并运行一些呼吁。

2.毗连到Container中运行的MySQL数据库

我们将接头在Docker容器中运行的MySQL上毗连和运行SQL呼吁的两种要领。

第一种要领是行使像MySQL Workbench这样的器材(也可以行使DataGrip)。

此刻我们得MySQL容器映射到宿主机得端口为3308,我们可以行使如下设置参数毗连:

「Docker系列」 如安在Docker中陈设MySQL数据库?

因为端口映射,只能通过宿主机的端口3308举办毗连。

假如我们想毗连到容器化的MySQL,不通过映射端口,即来自在统一个Docker收集上运行的另一个应用措施,我们必需行使像Adminer这样的器材,这是我们的另一种要领。

Adminer是一个基于PHP的Web应用措施,用于会见数据库。

此刻,我们将在docker-compose.yml文件中添加另一项处事——Adminer。 可是,在我们举办变动之前,我们必要遏制运行容器并行使以下呼吁将其删除:

  1. docker-compose down 

让我们在docker-compose.yml文件中添加以下内容:

  1. version: '3' 
  2. services: 
  3.  mysql-development: 
  4.  image: mysql:8.0.17 
  5.  environment: 
  6.  MYSQL_ROOT_PASSWORD: helloworld 
  7.  MYSQL_DATABASE: testapp 
  8.  ports: 
  9.  - "3308:3306" 
  10.   
  11.  admin:  
  12.  image: adminer  
  13.  ports:  
  14.  - "8080:8080" 

此刻,我们再次启动Docker 容器:

  1. docker-compose up 

运行此操纵后,将拉取Adminer的镜像,并启动MySQL和Adminer的容器。

我们可以行使docker-compose ps搜查状态。

此刻,我们可以会见我们的赏识器并转到localhost:8080 来会见Adminer。 因为Adminer运行在与MySQL沟通的Docker收集上,它可以通过端口3306(或简朴地通过容器名称)会见MySQL容器。

留意:我们无法在Adminer中通过端口3308会见MySQL容器,由于这将实行会见Docker Compose收集的端口3308,而不是宿主机上的3308端口。

「Docker系列」 如安在Docker中陈设MySQL数据库?

我们还可以在MySQL呼吁行界面中输入以下呼吁:

  1. docker-compose exec mysql-development mysql -uroot -phelloworld testapp 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读