Contents
Dockerfile企业案例二¶
安装lamp中的apache服务¶
Dockerfile文件详细信息如下
[root@bogon docker]# cat Dockerfile
FROM centos
MAINTAINER hujianli
RUN yum install pcre-devel -y
RUN yum install httpd httpd-delvel -y
RUN echo "<h1>The Test Page Hujianli</h1>" >> /var/www/html/index.html
EXPOSE 80
CMD ["/usr/sbin/apachectl","-D","FOREGROUND"]
执行测试
# 后台执行httpd:dockerfile
[root@bogon docker]# docker run -d -p 8090:80 --name httpd01 centos
c8012d6dfffb9bc31680ad002840cd4941047d5aacd2b985b020113d2d6bc627
[root@bogon docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMESc8012d6dfffb centos "/usr/sbin/apachectl…" 3 seconds ago Up 1 second 0.0.0.0:8090->80/tcp
httpd01 tm1
[root@bogon docker]# curl 127.0.0.1:8090
<h1>The Test Page Hujianli</h1>
lamp安装¶
建立执行脚本run.sh,此文件放在Dockerfile同级目录下。
#!/bin/bash
/usr/sbin/httpd -D FOREGROUND
mysqld_safe &
Dockerfile 配置文件如下:
# 设置镜像,本机要存在的镜像
FROM centos:7.2
# 备注一下作者信息
#MAINTAINER lixh (admin@lixh.cn)
# 安装Apache
RUN yum -y install httpd;yum clean all
# 安装Mariadb
RUN yum -y install mariadb mariadb-server;yum clean all
# 安装PHP
RUN yum -y install php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc;yum clean all
# 写测试文件到网站目录下
RUN echo "<?php phpinfo(); ?>" >> /var/www/html/info.php
# 执行初始化数据库方法
RUN mysql_install_db --user=mysql
# 添加本地配置文件
ADD run.sh /run.sh
# 对添加的文件进行权限设置
RUN chmod 755 /run.sh
# 开放80号端口
EXPOSE 80
# 开机自启动httpd
CMD ["/run.sh"]
可能用到的命令:
# 创建镜像
docker build -t lamp:dockerfile .
# 执行容器
docker run -d -p 10080:80 lamp:dockerfile