系統環境:
> mkdir -p ~/my_docker/centos5-lamp_php51 > cd ~/my_docker/centos5-lamp_php51
Dockerfile, startup.sh
Dockerfile:
############################################################ # Dockerfile to build LAMP with PHP 5.1.x container images # Based on CentOS 5 ############################################################ FROM centos:centos5 MAINTAINER A-Lang <alang.hsu@gmail.com> RUN rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 RUN yum -y update RUN yum -y install mysql-server RUN yum -y install httpd php php-mbstring php-mysql RUN yum -y install wv links pdftohtml tidy html2ps ADD ./startup.sh /opt/startup.sh RUN chmod +x /opt/startup.sh RUN echo "/opt/startup.sh" >> /etc/bashrc EXPOSE 80 873 CMD ["/bin/bash"]
TIP:
在 EXPOSE 的設定,除了 80 port 以外,還有 rsync 873 port,這是非必要。
startup.sh:
#!/usr/bin/env bash #=============================================================================== # # AUTHOR: A-Lang <alang.hsu@gmail.com> # #=============================================================================== echo "Starting mysql:" service mysqld start echo "Starting Apache:" service httpd start
> docker build -t alang/centos5-lamp_php51 .
TIP:
完成後,執行 docker images 會顯示剛剛新建的 image。
> docker run -t -i alang/centos5-lamp_php51
TIPs:
- 按下 Ctrl+P, Ctrl+Q 可以退出 container 回到 host,但不會關閉 container。
- 執行 docker attach <container-id> 可以重新進入 container 的 console。
設定時區
container> rm -f /etc/localtime container> ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime
輸入 Ctrl+P, Ctrl+Q 退出 container,執行這個指令儲存 image 剛剛的變更
> docker ps > docker commit <container-id> <image-name>
TIP:
儲存 image 時,建議可以在原有的 image-name 加上 v1。
系統環境:
> mkdir -p ~/my_docker/mindtouch1014 > cd ~/my_docker/mindtouch1014
Dockerfile:
設定 MySQL root 密碼
container> mysqladmin -u root password 'your-pass'