偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何在Docker中部署MySQL數(shù)據(jù)庫?

數(shù)據(jù)庫 MySQL
Docker為部署和測(cè)試應(yīng)用程序和數(shù)據(jù)庫提供了許多優(yōu)勢(shì),這些應(yīng)用程序和數(shù)據(jù)庫是應(yīng)用程序不可或缺的一部分,因此很值得學(xué)習(xí)如何在Docker容器中部署和運(yùn)行數(shù)據(jù)庫。

 Docker為部署和測(cè)試應(yīng)用程序和數(shù)據(jù)庫提供了許多優(yōu)勢(shì),這些應(yīng)用程序和數(shù)據(jù)庫是應(yīng)用程序不可或缺的一部分,因此很值得學(xué)習(xí)如何在Docker容器中部署和運(yùn)行數(shù)據(jù)庫。

本文中,我們會(huì)重點(diǎn)關(guān)注如下重點(diǎn):

為MySQL Docker容器創(chuàng)建Docker Compose YAML文件。

使用各種方法連接到在容器上運(yùn)行的MySQL數(shù)據(jù)庫。

在Docker容器中創(chuàng)建并運(yùn)行多個(gè)MySQL版本。

接下來,我們會(huì)逐一介紹這些。

1.為MySQL Docker容器創(chuàng)建Docker Compose YAML文件

首先,我們創(chuàng)建一個(gè)目錄——db-docker,然后在這個(gè)目錄中創(chuàng)建一個(gè)文件——docker-compose.yml。

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

基本上,在這里,我們將指定我們將要使用的服務(wù)并設(shè)置與這些服務(wù)相關(guān)的環(huán)境變量。

我們將在本文中多次更改此文件。

在我們剛剛創(chuàng)建的docker-compose.yml文件中添加以下內(nèi)容:

  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。

接下來我們需要指定的是環(huán)境變量,即用戶,密碼和數(shù)據(jù)庫。 如果您未指定用戶,則默認(rèn)情況下它將為root。

我們將使用helloworld作為密碼,使用testapp作為數(shù)據(jù)庫。

另一個(gè)重要的是端口映射。 3308:3306表示在端口3306的容器中運(yùn)行的MySQL映射到端口3308的主機(jī)的本地主機(jī)。您也可以使用不同的端口。

現(xiàn)在,在創(chuàng)建.yml文件之后,我們需要在.yml文件所在的同一目錄中運(yùn)行以下命令:

  1. docker-compose up 

這將拉取Docker鏡像(如果鏡像在本地不存在,它將從Docker Hub拉出)然后運(yùn)行容器。

我們可以通過如下命令查看狀態(tài):

  1. docker-compose ps 
「Docker系列」 如何在Docker中部署MySQL數(shù)據(jù)庫?

這將顯示容器的名稱,命令和容器的狀態(tài),例如,它顯示容器正在運(yùn)行。 它還顯示了端口映射。

在下一步中,我們將連接到此MySQL容器并運(yùn)行一些命令。

2.連接到Container中運(yùn)行的MySQL數(shù)據(jù)庫

我們將討論在Docker容器中運(yùn)行的MySQL上連接和運(yùn)行SQL命令的兩種方法。

第一種方法是使用像MySQL Workbench這樣的工具(也可以使用DataGrip)。

現(xiàn)在我們得MySQL容器映射到宿主機(jī)得端口為3308,我們可以使用如下配置參數(shù)連接:

「Docker系列」 如何在Docker中部署MySQL數(shù)據(jù)庫?

由于端口映射,只能通過宿主機(jī)的端口3308進(jìn)行連接。

如果我們想連接到容器化的MySQL,不通過映射端口,即來自在同一個(gè)Docker網(wǎng)絡(luò)上運(yùn)行的另一個(gè)應(yīng)用程序,我們必須使用像Adminer這樣的工具,這是我們的另一種方法。

Adminer是一個(gè)基于PHP的Web應(yīng)用程序,用于訪問數(shù)據(jù)庫。

現(xiàn)在,我們將在docker-compose.yml文件中添加另一項(xiàng)服務(wù)——Adminer。 但是,在我們進(jìn)行更改之前,我們需要停止運(yùn)行容器并使用以下命令將其刪除:

  1. docker-compose down 

讓我們?cè)赿ocker-compose.yml文件中添加以下內(nèi)容:

  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" 

現(xiàn)在,我們?cè)俅螁?dòng)Docker 容器:

  1. docker-compose up 

運(yùn)行此操作后,將拉取Adminer的鏡像,并啟動(dòng)MySQL和Adminer的容器。

我們可以使用docker-compose ps檢查狀態(tài)。

現(xiàn)在,我們可以訪問我們的瀏覽器并轉(zhuǎn)到localhost:8080 來訪問Adminer。 由于Adminer運(yùn)行在與MySQL相同的Docker網(wǎng)絡(luò)上,它可以通過端口3306(或簡(jiǎn)單地通過容器名稱)訪問MySQL容器。

注意:我們無法在Adminer中通過端口3308訪問MySQL容器,因?yàn)檫@將嘗試訪問Docker Compose網(wǎng)絡(luò)的端口3308,而不是宿主機(jī)上的3308端口。

「Docker系列」 如何在Docker中部署MySQL數(shù)據(jù)庫?

我們還可以在MySQL命令行界面中輸入以下命令:

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

3.在Docker容器中創(chuàng)建并運(yùn)行MySQL的

  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" 
  15.  mysql-old: 
  16.  image: mysql:5.7.27 
  17.  environment: 
  18.  MYSQL_ROOT_PASSWORD: helloworld 
  19.  MYSQL_DATABASE: coolapp 
  20.  ports: 
  21.  - "3309:3306" 

總結(jié)

上述是個(gè)簡(jiǎn)單得MySQL容器化小案例。希望給大家?guī)睃c(diǎn)啟發(fā)。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2022-01-17 08:36:46

MySQLAmazon RDS 數(shù)據(jù)庫

2021-12-03 23:21:45

數(shù)據(jù)庫MySQLKubernetes

2020-11-13 09:22:32

Docker數(shù)據(jù)庫容器

2009-01-19 09:14:31

.NETMySQLMySql驅(qū)動(dòng)包

2011-03-03 10:00:14

ProFTPD建立MySQL

2009-06-01 09:57:43

netbeans連接數(shù)netbeans數(shù)據(jù)庫netbeans連接m

2009-07-07 14:56:33

JSP連接MySQL

2020-10-21 10:16:03

AI保護(hù)公共安全?

2018-03-09 10:07:34

mysql

2022-04-22 09:20:06

FreeBSD 13MySQL數(shù)據(jù)庫

2025-05-20 08:53:46

MySQLDocker數(shù)據(jù)庫

2021-08-06 13:46:29

人工智能AI深度學(xué)習(xí)

2011-07-29 11:20:51

MySQL數(shù)據(jù)庫字段重復(fù)

2011-03-28 11:21:17

MySQL數(shù)據(jù)庫儲(chǔ)存圖片

2009-04-16 19:08:55

2024-07-30 08:00:00

Kubernetes數(shù)據(jù)庫

2009-07-24 10:41:00

asp.net mvc

2011-07-26 14:34:28

openSUSEpostgresql

2011-03-18 09:48:32

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)