文章出處

github上有一個專門的docker-libary項目,里面有各種各樣常用的docker鏡像,可以做為學習的示例,今天研究下其中mysql鏡像的用法,國內鏡像daocloud.io也能找到mysql的鏡像,但根據其參考文檔在mac上嘗試了數次,將mysql數據庫文件存儲在mac本機時,啟動總是報錯,大意是docker容器運行時,容器的當前用戶mysql,由于權限不足無法mac本機上創建文件,stackoverflow上有人解決了這個問題,參考其解決方法,重新整理了下Dockerfile文件,內容如下(主要是增加了vim的安裝,以方便直接在容器內修改mysql配置文件):

FROM mysql:latest

MAINTAINER jimmy.yang <yjmyzz@126.com>
LABEL Descripttion="This image is build for MAC to use mysql" Vendor="GitHub" Version="latest"
RUN apt-get update
RUN apt-get -y install vim
RUN usermod -u 1000 mysql
RUN mkdir -p /var/run/mysqld
RUN chmod -R 777 /var/run/mysqld

將上面這段保存成名為"Dockerfile"的文件,然后在當前目錄下,輸入:

docker build -t "yjmyzz/mysql-osx:latest" .

注意最后有一個點,-t后的內容為image的tag,可以根據需要修改成自己的內容。build完成后,可用docker images ls確認下是否在本機生成了名為yjmyzz/mysql-osx的鏡像,接著就可以創建mysql容器了,示例如下:

docker run -d -h mysql \
  -v /Users/yjmyzz/data/db/mysql:/var/lib/mysql \
  -p 0.0.0.0:3306:3306 --name mysql \
  -e MYSQL_ROOT_PASSWORD=123456 yjmyzz/mysql-osx

上面有幾個參數值大家根據需要自行調整:

-v 后面的/Users/yjmyzz/data/db/mysql 為mac本機的目錄,用于存放mysql數據庫文件(創建前要注意該目錄必須為空,且必須是當前登錄用戶~/下,且要有讀寫權限)

-p 后面的部分為端口映射

MYSQL_ROOT_PASSWORD=123456為root賬號的密碼

 

mac上連接驗證:

mysql -h192.168.99.100 -uroot -p123456 

上面的ip地址,大家換成自己虛擬機default的IP

 

mysql參數調整:

先進入容器

docker exec -it mysql sh

然后在容器內

vi /etc/mysql/my.cnf

注意:修改完mysql參數后,如果直接在容器內 service mysql restart ,容器就退出了(因為mysql stop完成的瞬間,沒有命令在運行,容器生命周期結束),需要在mac機上執行

docker start mysql

 

上傳鏡象

為了以后使用方便,可以將mac版的mysql鏡像上傳到daocloud.io,命令如下:

docker login daocloud.io
docker tag yjmyzz/mysql-osx daocloud.io/yjmyzz/mysql-osx:latest
docker push daocloud.io/yjmyzz/mysql-osx:latest

提醒:daocloud push上去的鏡像,目前未提供刪除功能(客服說是以后會提供),一旦上傳了,目前就沒辦法刪除了,所以千萬不要在鏡像里放一些敏感信息。  

參考文章:

1. 官網dockerfile用法 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()