昨天已經簡單的介紹了docker的安裝和一些操作docker的指令,今天要介紹如何撰寫dockerfile以及建構出docker image。
今天我就寫一個mysql service的dockerfile,之後還會把這個dockerfile build成docker image,放在mesos上執行。
1.建立Dockerfile,操作指令和檔案內容如下
# vi Dockerfile
檔案內容如下
FROM centos:6.6
RUN yum install -y epel-release
RUN yum install -y mysql-server supervisor
RUN service mysqld start; \
mysql -uroot -e "GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'admin'"; \
mysql -uroot -padmin -e "GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'admin'"; \
mysql -uroot -padmin -e "CREATE DATABASE dbtest"
ADD ./start.sh /start.sh
CMD ["/bin/bash", "/start.sh"]
上面的指令主要是下載mysql、設定mysql的權限以及啟動mysql service,在build的時侯會被執行到這些指令,然後存入docker image裡
2.建立start.sh用來啟動mysql用的,操作指令和檔案內容如下
# vi start.sh
檔案內容如下
#/bin/bash
service mysqld start
supervisord -n
3. Build docker image指令如下
# docker build -t mysql:5.4 .
4.查看docker image是否有build成功
#docker images|grep mysql
5.啟動mysql的docker container,指令如下
#docker run -d -p 3306:3306 --restart=always mysql:5.4
測試mysql container,指令如下
#mysql -h 192.168.1.223 -u root -p
密碼:admin
執行結果如下
今天已經簡單的介紹如何寫dockerfile、build出docker image、執行docker container最後測試是否能操作mysql service的container。明天還會繼續介紹build完的docker image推入到docker registry,最後的目標是能在mesos上執行docker container。