自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

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

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

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

接下來,我們會逐一介紹這些。

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

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

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

基本上,在這里,我們將指定我們將要使用的服務并設(shè)置與這些服務相關(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ù)庫。 如果您未指定用戶,則默認情況下它將為root。

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

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

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

  1. docker-compose up 

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

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

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

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

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

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

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

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

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

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

由于端口映射,只能通過宿主機的端口3308進行連接。

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

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

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

  1. docker-compose down 

讓我們在docker-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)在,我們再次啟動Docker 容器:

  1. docker-compose up 

運行此操作后,將拉取Adminer的鏡像,并啟動MySQL和Adminer的容器。

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

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

注意:我們無法在Adminer中通過端口3308訪問MySQL容器,因為這將嘗試訪問Docker Compose網(wǎng)絡的端口3308,而不是宿主機上的3308端口。

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

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

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

3.在Docker容器中創(chuàng)建并運行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é)

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

責任編輯:華軒 來源: 今日頭條
相關(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ū)動包

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保護公共安全?

2018-03-09 10:07:34

mysql

2021-08-06 13:46:29

人工智能AI深度學習

2022-04-22 09:20:06

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

2011-03-28 11:21:17

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

2011-07-29 11:20:51

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

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

2023-09-05 08:40:57

刪除數(shù)據(jù)庫Oracle

2011-03-02 17:41:28

點贊
收藏

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