docker安裝及運(yùn)行MySQL5.7容器完整腳本及說明
更新時(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:啟用二進(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端口,使得可以通過宿主機(jī)的3306端口訪問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的名稱,本文通過案例分析給大家詳細(xì)講解,需要的朋友可以參考下2022-09-09
Docker跨平臺(tái)和環(huán)境部署的過程詳解
Docker是一個(gè)開放源代碼的容器化平臺(tái),它能夠?qū)崿F(xiàn)應(yīng)用及其依賴的打包,從而實(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鏡像的問題
這篇文章主要介紹了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ì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
使用Docker部署Spring Boot的應(yīng)用示例
這篇文章主要介紹了使用Docker部署Spring Boot的應(yīng)用示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03

