1. 程式人生 > >製作基於centos7的mysql的docker映象

製作基於centos7的mysql的docker映象

redhat從7開始,系統預設自帶的資料庫不在是mysql,而是mysql另外的一個分支叫mariadb。

由於mariadb剛剛受到推崇,大家都還不太習慣,都還是傾向於使用mysql。

公司的開發環境使用docker來部署服務,docker映象是centos7的系統(可以說跟rhel7一樣),於是試著做一個centos7的mysql映象。

cenos7的docker映象只有作業系統最基本的功能,大小隻有二百多兆。有很多渠道可以獲取,這裡就不多說,下面只說一下需要注意的幾點。

---
安裝過程中需要注意的幾點:
a) 安裝時需要perl的依賴包(perl-DBD-MySQL perl-Time-HiRes等),依賴的perl包不裝的話會報錯;
b) 然後安裝MySQL-shared-XXXX MySQL-client-XXXX MySQL-server-XXXX這3個包就可以安裝mysql(XXXX為版本號,此次使用的rpm報的版本號為5.6.28); c) 安裝之後,mysql的root密碼是被預設設定了,初始密碼記錄在:/root/.mysql_secret d) 通過/etc/init.d/mysql start 啟動mysql之後,使用 mysqladmin -u root -p password 123456 將root密碼設為了123456 e) mysql授權所有庫的所有許可權給所有主機:mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';"
本次製作的centos7的mysql映象名為: centos-base-sshd-mysql:latest 執行示例如下: docker run -d -p 3322:22 -p 3309:3306 centos-base-sshd-mysql 可從宿主機上使用如下命令測試mysql是否正常運行了: mysql -h 127.0.0.1 -P 3309 -uroot -p123456 -e "show databases;" 如果能顯示出databases的資訊,說明mysql正常運行了

注:需要掛載mysql外接資料目錄的話,在執行容器的時候使用類似於 -v /var/lib/mysql:/var/lib/mysql去指定
另外,在掛載外接目錄的時候,需要注意掛載目錄的所有者屬性,必須要符合容器中mysql賬號的屬性;否則會報許可權錯誤
比如,這個mysql的容器執行後的mysql使用者的uid和gid是999和998,則需要把宿主上要掛載的目錄所有者屬性也改成999:998再掛載執行容器
chown 999:998 /host/mysql_data/ -R