docker安裝及運行MySQL5.7容器完整腳本及說明
更新時間:2025年01月04日 09:51:46 作者:學(xué)亮編程手記
這個腳本用于在Docker中安裝和運行MySQL 5.7容器,它首先創(chuàng)建必要的目錄和配置文件,然后刪除并強制停止現(xiàn)有的MySQL容器,最后啟動一個新的MySQL容器,配置包括設(shè)置環(huán)境變量、端口映射、數(shù)據(jù)和配置文件目錄掛載等
docker安裝及運行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
這個腳本主要用于設(shè)置和啟動一個MySQL容器。
下面是對腳本中每個命令的詳細解釋:
1. 創(chuàng)建目錄
mkdir -p {data,conf.d}
mkdir -p
:創(chuàng)建目錄,如果目錄已經(jīng)存在則不會報錯。{data,conf.d}
:這是Bash的一個特性,稱為“brace expansion”,它會擴展為兩個目錄名data
和conf.d
。- 這行命令的作用是創(chuàng)建兩個目錄
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配置文件中的一個節(jié)頭,表示下面的配置選項適用于mysqld
服務(wù)。log_bin=mysql-binlog
:啟用二進制日志,并指定日志文件的基本名稱為mysql-binlog
。server_id=1
:設(shè)置服務(wù)器ID為1,這是啟用二進制日志時必須設(shè)置的參數(shù),每個MySQL實例應(yīng)該有唯一的服務(wù)器ID。
3. 刪除并強制停止現(xiàn)有的MySQL容器
docker rm -f mysql
docker rm -f mysql
:刪除名為mysql
的Docker容器。-f
參數(shù)表示即使容器正在運行也強制刪除。
4. 啟動新的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
:運行一個新的容器。-d
:以分離模式(后臺)運行容器。--name mysql
:為容器指定名稱mysql
。-e MYSQL_ROOT_PASSWORD=123456
:設(shè)置環(huán)境變量MYSQL_ROOT_PASSWORD
為123456
,這是MySQL root用戶的密碼。-p 3306:3306
:將宿主機的3306端口映射到容器的3306端口,使得可以通過宿主機的3306端口訪問MySQL服務(wù)。-v /etc/localtime:/etc/localtime
:將宿主機的/etc/localtime
文件掛載到容器內(nèi)的/etc/localtime
,確保容器使用與宿主機相同的時區(qū)。-v ./data:/var/lib/mysql
:將宿主機當(dāng)前目錄下的data
目錄掛載到容器內(nèi)的/var/lib/mysql
,這是MySQL的數(shù)據(jù)存儲目錄。-v ./conf.d:/etc/mysql/conf.d
:將宿主機當(dāng)前目錄下的conf.d
目錄掛載到容器內(nèi)的/etc/mysql/conf.d
,這樣容器可以加載外部配置文件。mysql:5.7
:使用的Docker鏡像是mysql
的5.7版本。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker容器通信參數(shù)使用及l(fā)ink參數(shù)介紹
這篇文章主要介紹了docker容器通信參數(shù)使用及l(fā)ink參數(shù)介紹,link的原理就是在/etc/hosts里面添加了一個alias的名稱,本文通過案例分析給大家詳細講解,需要的朋友可以參考下2022-09-09關(guān)于docker安裝python3.8鏡像的問題
這篇文章主要介紹了docker安裝python3.8鏡像的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10在CentOS啟動時自動加載內(nèi)核模塊overlayfs操作
這篇文章主要介紹了在CentOS啟動時自動加載內(nèi)核模塊overlayfs操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11使用Docker部署Spring Boot的應(yīng)用示例
這篇文章主要介紹了使用Docker部署Spring Boot的應(yīng)用示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03