# mkdir -pv docker/MySQL# cd docker/mysql/
# vim Dockerfile #此處sshd:latest 為上篇文章中創(chuàng)建的鏡 FROM sshd:latestMAINTAINER mykernel(www.mykernel.cn) #安裝軟件 RUN ENV DEBIAN_FRONTEND noninteractive apt-get update && \ apt-get -yq install mysql-server-5.6 pwgen && \ rm -rf /var/lib/apt/lists/* # 刪除預(yù)安裝的數(shù)據(jù)庫(kù)文件 RUN rm -rf /var/lib/mysql/* # 添加文件夾下的 MYSQL 配置文件 ADD my.cnf /etc/mysql/conf.d/my.cnf ADD mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf ADD authorized_keys /root/.ssh/authorized_keys # 添加 MYSQL 的腳本 ADD import_sql.sh /import_sql.sh ADD run.sh /run.shRUN chmod 755 /*.sh # 設(shè)置環(huán)境變量,用戶名以及密碼 ENV MYSQL_USER adminENV MYSQL_PASS **Random** # 設(shè)置主從復(fù)制模式下的環(huán)境變量 ENV REPLICATION_MASTER **False** ENV REPLICATION_SLAVE **False** ENV REPLICATION_USER replica ENV REPLICATION_PASS replica # 設(shè)置可以允許掛載的卷,可以用來(lái)備份數(shù)據(jù)庫(kù)和配置文件 VOLUME ["/etc/mysql", "/var/lib/mysql"] # 設(shè)置可以映射的端口,如果是從我們的 sshd 鏡像繼承的話,默認(rèn)還會(huì)開(kāi)啟 22 端口 EXPOSE 3306 CMD ["/run.sh"]
# touch my.cnf mysqld_charset.cnf authorized_keys import_sql.sh run.sh
(1)my.cnf為mysql運(yùn)行時(shí)候的主配置文件,需要根據(jù)自己的實(shí)際情況進(jìn)行書(shū)寫(xiě)
(2)mysqld_charset.cnf為mysql運(yùn)行時(shí)候的字符配置,需要根據(jù)自己的實(shí)際情況進(jìn)行書(shū)寫(xiě)
(3) import_sql.sh
(4)run.sh 此處提供帶主從復(fù)制和自定義密碼的run文件
牟平網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,牟平網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為牟平成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的牟平做網(wǎng)站的公司定做!
# docker build -t mysql:first .
# sudo docker run -d -p 1027:22 -p 1026:3306 --name mysql mysql:first
通過(guò)xshell 連接進(jìn)容器,查看服務(wù)器是否啟動(dòng);此處直接使用mysql命令,便可以以root的身份進(jìn)入,配置好相關(guān)用戶之后使用關(guān)閉容器,docker commit進(jìn)行提交。
通過(guò)mysql默認(rèn)的用戶名和用戶密碼遠(yuǎn)程連接mysqld 測(cè)試,默認(rèn)用戶為admin密碼可以使用docker logs mysql查看。admin用戶具有root的所有權(quán)限。
說(shuō)明:每次如果是使用-P選項(xiàng)啟動(dòng)容器,每次stop容器之后再start,端口將會(huì)發(fā)生變化,所以建議使用-p指定固定的端口??梢詼p少修改iptables規(guī)則或者云服務(wù)器的安全策略
# docker run -d -P -v /mydata/mysql:/var/lib/mysql mysql:first
其實(shí)mysql的dockerfile文件中已經(jīng)使用了VOLUME 指令為容器創(chuàng)建一個(gè)一直有效的空間(不會(huì)因?yàn)閯h除容器而被刪除),但是這個(gè)空間是新創(chuàng)建的,而且物理機(jī)上命令比較復(fù)雜。此處可以直接使用-v選項(xiàng)掛載一個(gè)宿主機(jī)現(xiàn)在的目錄,而且容器可以直接訪問(wèn)該目錄下的所有數(shù)據(jù)。
默認(rèn)的mysql密碼在啟動(dòng)容器之后使用docker logs |查看。修改默認(rèn)用戶(admin)的密碼:
# docker run -d -P -e MYSQL_PASS="your_pass" mysql:first
-e參數(shù)可以來(lái)設(shè)定容器內(nèi)任意的環(huán)境變量。甚至覆蓋已經(jīng)存在的環(huán)境變量,或者是在Dockerfile中通過(guò)ENV設(shè)定的環(huán)境變量。
創(chuàng)建mysql主容器
# docker run -d -e REPLICATION_MASTER=true -P -name mysql:first
創(chuàng)建mysql從容器(–link name:alias)
# docker run -d -e REPLICATION_SLAVE=true --link mysql:mysql mysql:first
注意:此處主容器的–name必須為mysql,否則會(huì)報(bào)錯(cuò)。
網(wǎng)頁(yè)標(biāo)題:【docker】基于Dockerfile構(gòu)建mysqld服務(wù)鏡像
鏈接地址:http://www.rwnh.cn/article20/gpoico.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、微信公眾號(hào)、定制開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)