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