真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【docker】基于Dockerfile構(gòu)建mysqld服務(wù)鏡像

一 創(chuàng)建構(gòu)建目錄結(jié)構(gòu)

    # mkdir  -pv docker/MySQL# cd docker/mysql/

二 寫Dockerfile 文件

     # 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è)置可以允許掛載的卷,可以用來備份數(shù)據(jù)庫(kù)和配置文件
     VOLUME  ["/etc/mysql", "/var/lib/mysql"]
     
     # 設(shè)置可以映射的端口,如果是從我們的 sshd 鏡像繼承的話,默認(rèn)還會(huì)開啟 22 端口
     EXPOSE 3306
     
     CMD ["/run.sh"]

三 準(zhǔn)備Dockefile中需要的ADD的文件

     # touch my.cnf  mysqld_charset.cnf  authorized_keys   import_sql.sh run.sh

(1)my.cnf為mysql運(yùn)行時(shí)候的主配置文件,需要根據(jù)自己的實(shí)際情況進(jìn)行書寫
(2)mysqld_charset.cnf為mysql運(yùn)行時(shí)候的字符配置,需要根據(jù)自己的實(shí)際情況進(jìn)行書寫
(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)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的牟平做網(wǎng)站的公司定做!

四 創(chuàng)建鏡像

     # docker build -t mysql:first  .

五 測(cè)試

     # sudo docker run -d -p 1027:22 -p 1026:3306 --name mysql mysql:first

通過xshell 連接進(jìn)容器,查看服務(wù)器是否啟動(dòng);此處直接使用mysql命令,便可以以root的身份進(jìn)入,配置好相關(guān)用戶之后使用關(guān)閉容器,docker commit進(jìn)行提交。
通過mysql默認(rèn)的用戶名和用戶密碼遠(yuǎn)程連接mysqld 測(cè)試,默認(rèn)用戶為admin密碼可以使用docker logs mysql查看。admin用戶具有root的所有權(quán)限。

說明:每次如果是使用-P選項(xiàng)啟動(dòng)容器,每次stop容器之后再start,端口將會(huì)發(fā)生變化,所以建議使用-p指定固定的端口??梢詼p少修改iptables規(guī)則或者云服務(wù)器的安全策略

六 掛載mysql數(shù)據(jù)卷

     # 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)在的目錄,而且容器可以直接訪問該目錄下的所有數(shù)據(jù)。

七 設(shè)置mysql默認(rèn)用戶的密碼

默認(rèn)的mysql密碼在啟動(dòng)容器之后使用docker logs |查看。修改默認(rèn)用戶(admin)的密碼:

     # docker run -d -P -e MYSQL_PASS="your_pass"   mysql:first

-e參數(shù)可以來設(shè)定容器內(nèi)任意的環(huán)境變量。甚至覆蓋已經(jīng)存在的環(huán)境變量,或者是在Dockerfile中通過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ò)。


本文名稱:【docker】基于Dockerfile構(gòu)建mysqld服務(wù)鏡像
鏈接URL:http://weahome.cn/article/gpoico.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部