欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Docker容器在Linux上部署MySQL方式

 更新時(shí)間:2025年02月08日 10:39:10   作者:費(fèi)曼樂(lè)園  
本文詳細(xì)介紹了如何在Linux上使用Docker部署MySQL服務(wù)器,包括下載鏡像、啟動(dòng)容器、連接到服務(wù)器、停止和刪除容器,以及升級(jí)服務(wù)器的步驟

Docker容器在Linux上部署MySQL

使用Docker部署MySQL服務(wù)器的基本步驟包

括以下幾點(diǎn):

MySQL團(tuán)隊(duì)維護(hù)的MySQL Docker鏡像專門針對(duì)Linux平臺(tái)構(gòu)建。其他平臺(tái)不受支持,而在這些平臺(tái)上使用這些MySQL Docker鏡像的用戶將自擔(dān)風(fēng)險(xiǎn)。

下載MySQL Server Docker鏡像

重要提示

對(duì)于MySQL企業(yè)版用戶:要使用MySQL企業(yè)版的Docker鏡像,需要訂閱。訂閱采用自帶許可證模式(Bring Your Own License model)。

在單獨(dú)的步驟中下載服務(wù)器鏡像并非絕對(duì)必要;然而,在創(chuàng)建Docker容器之前執(zhí)行此步驟可確保本地鏡像是最新的。要從Oracle容器注冊(cè)表(OCR)下載MySQL社區(qū)版鏡像,請(qǐng)運(yùn)行以下命令:

docker pull container-registry.oracle.com/mysql/community-server:tag

標(biāo)簽(tag)是您想要拉取的鏡像版本的標(biāo)簽(例如,5.7、8.0或者latest)。如果省略了`:tag`,將使用latest標(biāo)簽,并且將下載MySQL社區(qū)服務(wù)器最新通用版本(GA)的鏡像。

要從OCR下載MySQL企業(yè)版鏡像,您需要首先在OCR上接受許可協(xié)議,并使用您的Docker客戶端登錄到容器倉(cāng)庫(kù)。請(qǐng)按照以下步驟進(jìn)行:

  • 訪問(wèn)OCR網(wǎng)站 https://container-registry.oracle.com/ 并選擇MySQL。
  • 在MySQL倉(cāng)庫(kù)列表下,選擇enterprise-server。
  • 如果您尚未登錄OCR,請(qǐng)單擊頁(yè)面右側(cè)的“登錄”按鈕,然后在提示時(shí)輸入您的Oracle帳戶憑據(jù)。
  • 按照頁(yè)面右側(cè)的說(shuō)明接受許可協(xié)議。
  • 使用您的容器客戶端登錄到OCR,例如使用docker login命令:
# docker login container-registry.oracle.com 
Username: Oracle-Account-ID
 Password: password
 Login successful.

使用以下命令從OCR下載MySQL企業(yè)版的Docker鏡像:

docker pull  container-registry.oracle.com/mysql/enterprise-server:tag

要從My Oracle Support網(wǎng)站下載MySQL企業(yè)版鏡像,請(qǐng)?jiān)L問(wèn)該網(wǎng)站,登錄您的Oracle賬戶,然后在登陸頁(yè)面執(zhí)行以下步驟:

  • 選擇“Patches and Updates(補(bǔ)丁和更新)”標(biāo)簽頁(yè)。
  • 轉(zhuǎn)到“Patch Search(補(bǔ)丁搜索)”區(qū)域,并在“Search(搜索)”標(biāo)簽下切換到“Product or Family(產(chǎn)品或家族)(Advanced)(高級(jí))”子標(biāo)簽。
  • 在“Product(產(chǎn)品)”字段輸入“MySQL Server”,并在“Release(發(fā)布版本)”字段輸入所需的版本號(hào)。
  • 使用附加過(guò)濾器的下拉菜單選擇“Description—contains(描述—包含)”,并在文本框中輸入“Docker”。
  • 點(diǎn)擊“Search”(搜索)按鈕,從結(jié)果列表中選擇您想要的版本,然后點(diǎn)擊“Download”(下載)按鈕。
  • 在出現(xiàn)的“File Download”(文件下載)對(duì)話框中,點(diǎn)擊并下載Docker鏡像的.zip文件。

解壓下載的 .zip 壓縮包以獲取其中的 tarball (mysql-enterprise-server-version.tar),然后運(yùn)行以下命令加載鏡像:

docker load -i mysql-enterprise-server-version.tar

您可以使用以下命令列出已下載的 Docker 鏡像:

$> docker images
 REPOSITORY                                             TAG       IMAGE ID       CREATED        SIZE
 container-registry.oracle.com/mysql/community-server   latest    1d9c2219ff69   2 months ago   496MB

啟動(dòng) MySQL 服務(wù)器實(shí)例

要為 MySQL Server 啟動(dòng)一個(gè)新的 Docker 容器,請(qǐng)使用以下命令:

docker run --name=container_name  --restart on-failure -d image_name:tag 

image_name 是用于啟動(dòng)容器的鏡像的名稱;

  • --name選項(xiàng)用于為您的服務(wù)器容器提供自定義名稱,是可選的;如果沒(méi)有提供容器名稱,則會(huì)生成一個(gè)隨機(jī)名稱。
  • --restart選項(xiàng)用于配置容器的重啟策略;它應(yīng)設(shè)置為值 on-failure,以啟用對(duì)服務(wù)器在客戶端會(huì)話中重新啟動(dòng)的支持(例如,當(dāng)客戶端執(zhí)行 RESTART 語(yǔ)句或在配置 InnoDB 集群實(shí)例時(shí)發(fā)生)。啟用重啟支持后,在客戶端會(huì)話中發(fā)出重啟會(huì)導(dǎo)致服務(wù)器和容器停止然后重新啟動(dòng)。支持服務(wù)器重啟可用于 MySQL 8.0.21 及更高版本。

例如:

要為 MySQL Community Server 啟動(dòng)一個(gè)新的 Docker 容器,請(qǐng)使用以下命令:

docker run --name=mysql1 --restart on-failure -d container-registry.oracle.com/mysql/community-server:lates

要使用從 OCR 下載的 Docker 鏡像啟動(dòng) MySQL Enterprise Server 的新 Docker 容器,請(qǐng)使用以下命令:

docker run --name=mysql1 --restart on-failure -d container-registry.oracle.com/mysql/enterprise-server:late

要使用從My Oracle Support下載的Docker鏡像啟動(dòng)新的MySQL Enterprise Server Docker容器,請(qǐng)使用此命令:

docker run --name=mysql1 --restart on-failure -d mysql/enterprise-server:latest

如果指定名稱和標(biāo)簽的Docker鏡像尚未通過(guò)先前的docker pull或docker run命令下載,現(xiàn)在會(huì)下載該鏡像。

容器的初始化開始,并且當(dāng)您運(yùn)行docker ps命令時(shí),該容器將出現(xiàn)在正在運(yùn)行的容器列表中。

例如:

$> docker ps
 CONTAINER ID   IMAGE                                                         COMMAND                  CREATED          STATUS                    PORTS                       NAMES
 4cd4129b3211   container-registry.oracle.com/mysql/community-server:latest   "/entrypoint.sh mysq…"   8 sec

容器初始化可能需要一些時(shí)間。當(dāng)服務(wù)器準(zhǔn)備就緒可以使用時(shí),運(yùn)行docker ps命令輸出中容器的狀態(tài)將從(health: starting)更改為(healthy)。

上面使用的docker run命令中的-d選項(xiàng)使容器在后臺(tái)運(yùn)行。

使用此命令來(lái)監(jiān)視容器的輸出:

docker logs mysql1

一旦初始化完成,命令的輸出將包含為root用戶生成的隨機(jī)密碼;

例如,使用以下命令檢查密碼:

$> docker logs mysql1 2>&1 | grep GENERATED
 GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs

從容器內(nèi)部連接到MySQL服務(wù)器

一旦服務(wù)器準(zhǔn)備就緒,您可以在剛啟動(dòng)的MySQL服務(wù)器容器內(nèi)運(yùn)行mysql客戶端,并連接到MySQL服務(wù)器。

使用docker exec -it命令在您啟動(dòng)的Docker容器中啟動(dòng)一個(gè)mysql客戶端,示例如下:

docker exec -it mysql1 mysql -uroot -p

當(dāng)要求輸入時(shí),請(qǐng)輸入生成的root密碼(請(qǐng)參閱上述“啟動(dòng)MySQL服務(wù)器實(shí)例”的最后一步,找到密碼方法)。

由于MYSQL_ONETIME_PASSWORD選項(xiàng)默認(rèn)為true,在您將mysql客戶端連接到服務(wù)器之后,必須通過(guò)執(zhí)行以下語(yǔ)句重新設(shè)置服務(wù)器的root密碼:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

將password替換為您選擇的密碼。一旦密碼重置完成,服務(wù)器就準(zhǔn)備好供使用了。

容器shell訪問(wèn)

要訪問(wèn)MySQL服務(wù)器容器的shell,請(qǐng)使用docker exec -it命令在容器內(nèi)啟動(dòng)一個(gè)bash shell:

$> docker exec -it mysql1 bash
 bash-4.2#

然后,您可以在容器內(nèi)運(yùn)行Linux命令。

例如,要查看容器內(nèi)服務(wù)器數(shù)據(jù)目錄中的內(nèi)容,請(qǐng)使用以下命令:

bash-4.2# ls /var/lib/mysql
 auto.cnf    ca.pem      client-key.pem  ib_logfile0  ibdata1  mysql       mysql.sock.lock    private_key.pem  server-cert.pem  sys
 ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile1  ibtmp1   mysql.sock  performance_schema  publ

停止和刪除MySQL容器

要停止我們創(chuàng)建的MySQL服務(wù)器容器,請(qǐng)使用以下命令:

docker stop mysql1

docker stop向mysqld進(jìn)程發(fā)送一個(gè)SIGTERM信號(hào),使服務(wù)器能夠優(yōu)雅地關(guān)閉。

還要注意,當(dāng)容器的主要進(jìn)程(在MySQL服務(wù)器容器的情況下是mysqld)停止時(shí),Docker容器會(huì)自動(dòng)停止。

要再次啟動(dòng)MySQL服務(wù)器容器:

docker start mysql1

要通過(guò)一個(gè)命令停止并重新啟動(dòng)MySQL服務(wù)器容器:

 docker restart mysql1

要?jiǎng)h除MySQL容器,首先停止它,然后使用docker rm命令:

docker stop mysql1
docker rm mysql1 

如果您希望同時(shí)刪除服務(wù)器數(shù)據(jù)目錄的Docker卷,請(qǐng)?jiān)赿ocker rm命令中添加v選項(xiàng)。

升級(jí)MySQL服務(wù)器容器

重要事項(xiàng):

  • 在對(duì)MySQL進(jìn)行任何升級(jí)之前備份您的數(shù)據(jù)庫(kù)。
  • 本節(jié)中的說(shuō)明要求將服務(wù)器的數(shù)據(jù)和配置持久化到主機(jī)上。

按照以下步驟升級(jí)Docker中的MySQL 5.7到8.0版本:

  • 停止MySQL 5.7服務(wù)器(在此示例中容器名稱為mysql57):
 docker stop mysql57
  • 下載MySQL 8.0服務(wù)器的Docker鏡像。確保使用適用于MySQL 8.0的正確標(biāo)簽。
  • 使用在主機(jī)上持久保存的舊服務(wù)器數(shù)據(jù)和配置啟動(dòng)一個(gè)新的MySQL 8.0 Docker容器(在本示例中命名為mysql80),方法是將其綁定掛載。對(duì)于MySQL Community Server,請(qǐng)運(yùn)行以下命令:
docker run --name=mysql80 \
   --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
   --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
   -d container-registry.oracle.com/mysql/community-server:8.0

如有需要,請(qǐng)將 container-registry.oracle.com/mysql/community-server 調(diào)整為正確的鏡像名稱,

例如,使用 container-registry.oracle.com/mysql/enterprise-server 替換MySQL企業(yè)版的鏡像,這些鏡像可以從OCR下載,或使用 mysql/enterprise-server 從我的Oracle支持下載MySQL企業(yè)版鏡像。

  • 等待服務(wù)器完成啟動(dòng)。您可以使用 docker ps 命令檢查服務(wù)器的狀態(tài)。

對(duì)于在8.0系列中進(jìn)行升級(jí)(即從8.0.x版本升級(jí)到8.0.y版本),請(qǐng)按照同樣的步驟操作:停止原始容器,然后使用更新的鏡像在舊服務(wù)器數(shù)據(jù)和配置上啟動(dòng)一個(gè)新的容器。

如果在啟動(dòng)原始容器時(shí)使用了8.0或最新標(biāo)簽,并且現(xiàn)在有一個(gè)您想要升級(jí)的新的MySQL 8.0版本,您必須首先使用以下命令拉取新版本的鏡像:

docker pull container-registry.oracle.com/mysql/community-server:8.0

您可以通過(guò)在舊數(shù)據(jù)和配置上使用相同標(biāo)簽啟動(dòng)一個(gè)新容器來(lái)進(jìn)行升級(jí)。

docker run --name=mysql80new \
   --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
   --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
   -d container-registry.oracle.com/mysql/community-server:8.0

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker容器/etc/hosts文件修改方法

    docker容器/etc/hosts文件修改方法

    在容器內(nèi)部,當(dāng)需要訪問(wèn)其他容器或主機(jī)時(shí),可以通過(guò)/etc/hosts文件來(lái)解析主機(jī)名,從而實(shí)現(xiàn)網(wǎng)絡(luò)通信,這篇文章主要介紹了docker容器/etc/hosts文件,需要的朋友可以參考下
    2023-06-06
  • windows server 2016安裝docker的方法步驟

    windows server 2016安裝docker的方法步驟

    這篇文章主要介紹了windows server 2016安裝docker的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • docker通過(guò)Dockerfile修改鏡像中tomcat的端口

    docker通過(guò)Dockerfile修改鏡像中tomcat的端口

    8080端口會(huì)經(jīng)常出現(xiàn)被占用的情況,本文主要介紹了docker通過(guò)Dockerfile修改鏡像中tomcat的端口,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Docker 無(wú)法停止或刪除容器服務(wù)問(wèn)題的解決方案

    Docker 無(wú)法停止或刪除容器服務(wù)問(wèn)題的解決方案

    這篇文章主要介紹了Docker 無(wú)法停止或刪除容器服務(wù)問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Docker容器操作方法詳解

    Docker容器操作方法詳解

    Docker 在隔離的容器中運(yùn)行進(jìn)程。之前總結(jié)了Docker鏡像的使用詳解,本篇按照之前測(cè)試openGauss容器過(guò)程中總結(jié)出來(lái)使用Docker容器的常用命令
    2022-08-08
  • docker部署安裝jenkins的實(shí)現(xiàn)步驟

    docker部署安裝jenkins的實(shí)現(xiàn)步驟

    本文主要介紹了docker部署安裝jenkins的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 如何查看docker run啟動(dòng)參數(shù)命令(推薦)

    如何查看docker run啟動(dòng)參數(shù)命令(推薦)

    這篇文章主要介紹了如何查看docker run啟動(dòng)參數(shù)命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • docker-compose網(wǎng)絡(luò)設(shè)置之networks的使用

    docker-compose網(wǎng)絡(luò)設(shè)置之networks的使用

    本文詳細(xì)解釋了在使用 Docker Compose時(shí)如何配置網(wǎng)絡(luò),包括創(chuàng)建、使用和問(wèn)題解決等方面,介紹了如何通過(guò)docker-compose.yml文件快速編排和部署應(yīng)用服務(wù),同時(shí)解決網(wǎng)絡(luò)隔離問(wèn)題,感興趣的可以了解一下
    2024-10-10
  • k3s?通過(guò)docker部署?Kubernetes的方法步驟

    k3s?通過(guò)docker部署?Kubernetes的方法步驟

    本文主要介紹了k3s?通過(guò)docker部署?Kubernetes的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Docker服務(wù)遷移的實(shí)現(xiàn)

    Docker服務(wù)遷移的實(shí)現(xiàn)

    本文詳細(xì)介紹了如何備份和遷移Docker服務(wù)數(shù)據(jù),包括停止Docker服務(wù)、備份Docker數(shù)據(jù)和DockerCompose文件,使用SCP或Rsync傳輸備份文件,以及在新服務(wù)器上恢復(fù)Docker數(shù)據(jù)和設(shè)置權(quán)限,文中提供了詳細(xì)的命令和步驟,確保數(shù)據(jù)遷移過(guò)程順利進(jìn)行
    2024-10-10

最新評(píng)論