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ì)解釋:
1. 創(chuàng)建目錄
mkdir -p {data,conf.d}mkdir -p:創(chuàng)建目錄,如果目錄已經(jīng)存在則不會(huì)報(bào)錯(cuò)。{data,conf.d}:這是Bash的一個(gè)特性,稱為“brace expansion”,它會(huì)擴(kuò)展為兩個(gè)目錄名data和conf.d。- 這行命令的作用是創(chuàng)建兩個(gè)目錄
data和conf.d,如果這些目錄不存在的話。
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文件中。>表示覆蓋寫入,如果文件已存在,其內(nèi)容將被清空。<<-EOF ... EOF:這是Here Document的一種形式,用于將多行文本寫入文件。-在<<-后面表示忽略前導(dǎo)制表符(tab)。[mysqld]:這是MySQL配置文件中的一個(gè)節(jié)頭,表示下面的配置選項(xiàng)適用于mysqld服務(wù)。log_bin=mysql-binlog:?jiǎn)⒂枚M(jìn)制日志,并指定日志文件的基本名稱為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:為容器指定名稱mysql。-e MYSQL_ROOT_PASSWORD=123456:設(shè)置環(huán)境變量MYSQL_ROOT_PASSWORD為123456,這是MySQL root用戶的密碼。-p 3306:3306:將宿主機(jī)的3306端口映射到容器的3306端口,使得可以通過(guò)宿主機(jī)的3306端口訪問(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+Vscode搭建(本地/遠(yuǎn)程)開(kāi)發(fā)環(huán)境
本文介紹了使用Docker+VSCode搭建統(tǒng)一開(kāi)發(fā)環(huán)境的完整方案,文中通過(guò)圖文示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12
Docker刪除鏡像詳細(xì)步驟和注意事項(xiàng)
Docker刪除鏡像是一個(gè)常見(jiàn)的操作,主要用于清理系統(tǒng)中不再需要的鏡像,以釋放存儲(chǔ)空間,刪除鏡像可以通過(guò)docker?rmi命令實(shí)現(xiàn),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
Docker安裝Nacos服務(wù)的實(shí)現(xiàn)
本文主要介紹了Docker安裝Nacos服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
關(guān)于Docker部署postgresql數(shù)據(jù)庫(kù)的問(wèn)題
這篇文章主要介紹了Docker部署postgresql數(shù)據(jù)庫(kù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Docker Compose重啟RabbitMQ數(shù)據(jù)丟失
本文主要介紹了Docker Compose重啟RabbitMQ數(shù)據(jù)丟失,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04

