docker安裝及運(yùn)行MySQL5.7容器完整腳本及說(shuō)明
更新時(shí)間:2025年01月04日 09:51:46 作者:學(xué)亮編程手記
這個(gè)腳本用于在Docker中安裝和運(yùn)行MySQL 5.7容器,它首先創(chuàng)建必要的目錄和配置文件,然后刪除并強(qiáng)制停止現(xiàn)有的MySQL容器,最后啟動(dòng)一個(gè)新的MySQL容器,配置包括設(shè)置環(huán)境變量、端口映射、數(shù)據(jù)和配置文件目錄掛載等
docker安裝及運(yùn)行MySQL5.7容器
mkdir -p {data,conf.d} cat > conf.d/log-bin.cnf <<-EOF [mysqld] log_bin=mysql-binlog server_id=1 EOF docker rm -f mysql docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /etc/localtime:/etc/localtime -v ./data:/var/lib/mysql -v ./conf.d:/etc/mysql/conf.d mysql:5.7
這個(gè)腳本主要用于設(shè)置和啟動(dòng)一個(gè)MySQL容器。
下面是對(duì)腳本中每個(gè)命令的詳細(xì)解釋?zhuān)?/p>
1. 創(chuàng)建目錄
mkdir -p {data,conf.d}
mkdir -p
:創(chuàng)建目錄,如果目錄已經(jīng)存在則不會(huì)報(bào)錯(cuò)。{data,conf.d}
:這是Bash的一個(gè)特性,稱(chēng)為“brace expansion”,它會(huì)擴(kuò)展為兩個(gè)目錄名data
和conf.d
。- 這行命令的作用是創(chuàng)建兩個(gè)目錄
data
和conf.d
,如果這些目錄不存在的話(huà)。
2. 創(chuàng)建配置文件
cat > conf.d/log-bin.cnf <<-EOF [mysqld] log_bin=mysql-binlog server_id=1 EOF
cat > conf.d/log-bin.cnf
:將標(biāo)準(zhǔn)輸入重定向到conf.d/log-bin.cnf
文件中。>
表示覆蓋寫(xiě)入,如果文件已存在,其內(nèi)容將被清空。<<-EOF ... EOF
:這是Here Document的一種形式,用于將多行文本寫(xiě)入文件。-
在<<-
后面表示忽略前導(dǎo)制表符(tab)。[mysqld]
:這是MySQL配置文件中的一個(gè)節(jié)頭,表示下面的配置選項(xiàng)適用于mysqld
服務(wù)。log_bin=mysql-binlog
:?jiǎn)⒂枚M(jìn)制日志,并指定日志文件的基本名稱(chēng)為mysql-binlog
。server_id=1
:設(shè)置服務(wù)器ID為1,這是啟用二進(jìn)制日志時(shí)必須設(shè)置的參數(shù),每個(gè)MySQL實(shí)例應(yīng)該有唯一的服務(wù)器ID。
3. 刪除并強(qiáng)制停止現(xiàn)有的MySQL容器
docker rm -f mysql
docker rm -f mysql
:刪除名為mysql
的Docker容器。-f
參數(shù)表示即使容器正在運(yùn)行也強(qiáng)制刪除。
4. 啟動(dòng)新的MySQL容器
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /etc/localtime:/etc/localtime -v ./data:/var/lib/mysql -v ./conf.d:/etc/mysql/conf.d mysql:5.7
docker run
:運(yùn)行一個(gè)新的容器。-d
:以分離模式(后臺(tái))運(yùn)行容器。--name mysql
:為容器指定名稱(chēng)mysql
。-e MYSQL_ROOT_PASSWORD=123456
:設(shè)置環(huán)境變量MYSQL_ROOT_PASSWORD
為123456
,這是MySQL root用戶(hù)的密碼。-p 3306:3306
:將宿主機(jī)的3306端口映射到容器的3306端口,使得可以通過(guò)宿主機(jī)的3306端口訪(fǎng)問(wèn)MySQL服務(wù)。-v /etc/localtime:/etc/localtime
:將宿主機(jī)的/etc/localtime
文件掛載到容器內(nèi)的/etc/localtime
,確保容器使用與宿主機(jī)相同的時(shí)區(qū)。-v ./data:/var/lib/mysql
:將宿主機(jī)當(dāng)前目錄下的data
目錄掛載到容器內(nèi)的/var/lib/mysql
,這是MySQL的數(shù)據(jù)存儲(chǔ)目錄。-v ./conf.d:/etc/mysql/conf.d
:將宿主機(jī)當(dāng)前目錄下的conf.d
目錄掛載到容器內(nèi)的/etc/mysql/conf.d
,這樣容器可以加載外部配置文件。mysql:5.7
:使用的Docker鏡像是mysql
的5.7版本。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
docker容器通信參數(shù)使用及l(fā)ink參數(shù)介紹
這篇文章主要介紹了docker容器通信參數(shù)使用及l(fā)ink參數(shù)介紹,link的原理就是在/etc/hosts里面添加了一個(gè)alias的名稱(chēng),本文通過(guò)案例分析給大家詳細(xì)講解,需要的朋友可以參考下2022-09-09Docker跨平臺(tái)和環(huán)境部署的過(guò)程詳解
Docker是一個(gè)開(kāi)放源代碼的容器化平臺(tái),它能夠?qū)崿F(xiàn)應(yīng)用及其依賴(lài)的打包,從而實(shí)現(xiàn)跨平臺(tái)和環(huán)境的快速部署,本文介紹了Docker的基本概念、優(yōu)勢(shì)和基本使用方法,包括安裝、啟動(dòng)、構(gòu)建鏡像和部署應(yīng)用等步驟2024-11-11關(guān)于docker安裝python3.8鏡像的問(wèn)題
這篇文章主要介紹了docker安裝python3.8鏡像的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10在CentOS啟動(dòng)時(shí)自動(dòng)加載內(nèi)核模塊overlayfs操作
這篇文章主要介紹了在CentOS啟動(dòng)時(shí)自動(dòng)加載內(nèi)核模塊overlayfs操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11使用Docker部署Spring Boot的應(yīng)用示例
這篇文章主要介紹了使用Docker部署Spring Boot的應(yīng)用示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03