docker安裝及運行MySQL5.7容器完整腳本及說明
更新時間:2025年01月04日 09:51:46 作者:學亮編程手記
這個腳本用于在Docker中安裝和運行MySQL 5.7容器,它首先創(chuàng)建必要的目錄和配置文件,然后刪除并強制停止現(xiàn)有的MySQL容器,最后啟動一個新的MySQL容器,配置包括設置環(huán)境變量、端口映射、數(shù)據和配置文件目錄掛載等
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
這個腳本主要用于設置和啟動一個MySQL容器。
下面是對腳本中每個命令的詳細解釋:
1. 創(chuàng)建目錄
mkdir -p {data,conf.d}
mkdir -p
:創(chuà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
:將標準輸入重定向到conf.d/log-bin.cnf
文件中。>
表示覆蓋寫入,如果文件已存在,其內容將被清空。<<-EOF ... EOF
:這是Here Document的一種形式,用于將多行文本寫入文件。-
在<<-
后面表示忽略前導制表符(tab)。[mysqld]
:這是MySQL配置文件中的一個節(jié)頭,表示下面的配置選項適用于mysqld
服務。log_bin=mysql-binlog
:啟用二進制日志,并指定日志文件的基本名稱為mysql-binlog
。server_id=1
:設置服務器ID為1,這是啟用二進制日志時必須設置的參數(shù),每個MySQL實例應該有唯一的服務器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
:設置環(huán)境變量MYSQL_ROOT_PASSWORD
為123456
,這是MySQL root用戶的密碼。-p 3306:3306
:將宿主機的3306端口映射到容器的3306端口,使得可以通過宿主機的3306端口訪問MySQL服務。-v /etc/localtime:/etc/localtime
:將宿主機的/etc/localtime
文件掛載到容器內的/etc/localtime
,確保容器使用與宿主機相同的時區(qū)。-v ./data:/var/lib/mysql
:將宿主機當前目錄下的data
目錄掛載到容器內的/var/lib/mysql
,這是MySQL的數(shù)據存儲目錄。-v ./conf.d:/etc/mysql/conf.d
:將宿主機當前目錄下的conf.d
目錄掛載到容器內的/etc/mysql/conf.d
,這樣容器可以加載外部配置文件。mysql:5.7
:使用的Docker鏡像是mysql
的5.7版本。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
docker容器通信參數(shù)使用及l(fā)ink參數(shù)介紹
這篇文章主要介紹了docker容器通信參數(shù)使用及l(fā)ink參數(shù)介紹,link的原理就是在/etc/hosts里面添加了一個alias的名稱,本文通過案例分析給大家詳細講解,需要的朋友可以參考下2022-09-09