Dockerfile构建apache镜像 下载源码

本文介绍了如何在Linux环境下使用Docker:创建工作目录,编写Dockerfile以基于CentOS镜像部署Apache2.4.57,构建镜像,运行测试容器,并将容器端口映射到主机,以便访问Web服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建工作目录

[root@localhost ~]# mkdir tomcat
[root@localhost ~]# cd tomcat/

编写配置文件

[root@localhost tomcat]# cat Dockerfile
#基于的基础镜像
FROM centos:7
 
#镜像作者信息
MAINTAINER liu <wewed@163.com>
 
#安装相关依赖包
RUN yum install -y wget  net-tools gcc zlib zlib-devel make openssl-devel apr apr-util apr-util-devel pere-devel
 
#下载并解压apache源码包
RUN wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz && tar zxf httpd-2.4.57.tar.gz
#编译安装apache
RUN cd httpd-2.4.57 && ./configure --prefix=/usr/local/apache && make && make install
 
#开启 80端口
EXPOSE 80
 
 
#定义时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 
 
#启动容器时执行脚本
CMD ["-D","FOREGROUND"]
ENTRYPOINT ["/usr/local/apache/bin/apachectl"]

构建镜像

[root@localhost tomcat]# docker build -t apache:new .

[root@localhost tomcat]#  docker images apache:new
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
apache              new                 79d3192369be        25 seconds ago      1.19 GB

测试容器

[root@localhost tomcat]# docker run -d -p 8010:80 --name apache-test apache:new
5885a3ab583774690ac551c7a5cb6d7d956d0451b89447314b56b5616280d373

通过运行这个命令,你将在Docker中启动一个服务器,并将其映射到主机的端口,这样你就可以通过客户端连接到主机的端口来访问容器中的服务。
[root@localhost tomcat]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
5885a3ab5837        apache:new          "/usr/local/apache..."   11 seconds ago      Up 10 seconds       0.0.0.0:8010->80/tcp   apache-test

网页访问

### 使用 Dockerfile 构建 PHP 应用 构建基于 PHP 的应用程序镜像涉及创建一个名为 `Dockerfile` 的文件,该文件定义了环境配置和安装必要的依赖项。为了确保高效利用缓存,在编写 Dockerfile 时应遵循一些最佳实践[^1]。 #### 创建基础结构 首先,选择合适的官方 PHP 镜像作为起点: ```dockerfile FROM php:7.4-apache ``` 这行代码指定了使用的父级镜像是带有 Apache Web Server 的 PHP 7.4 版本。 #### 安装扩展和其他工具 接着添加所需的任何额外组件或库到容器内: ```dockerfile RUN docker-php-ext-install mysqli pdo pdo_mysql \ && a2enmod rewrite ``` 上述命令用于启用 MySQL 数据库支持以及 URL 重写的功能模块。 #### 设置工作目录 指定项目的工作目录位置有助于简化后续操作: ```dockerfile WORKDIR /var/www/html ``` 此指令设定了当前工作的根路径为 `/var/www/html` 文件夹。 #### 复制本地代码至容器 将主机上的源码复制进容器内的相应位置: ```dockerfile COPY . . ``` 这条语句会把宿主机当前目录下的所有内容拷贝过来。 #### 暴露服务端口 如果应用需要监听特定网络接口,则需声明对外开放的服务端口号: ```dockerfile EXPOSE 80 ``` 这里表示允许外部访问 HTTP 协议默认的第80号TCP端口。 #### 启动命令 最后提供启动容器后的初始进程: ```dockerfile CMD ["apache2-foreground"] ``` 它告诉 Docker 当实例化新容器时应该执行什么动作——这里是让Apache服务器以前台模式运行起来。 完成以上步骤之后保存文件,并通过如下方式开始构建流程: ```bash $ docker build -t my_php_app -f ./path/to/Dockerfile . ``` 这里的 `-t` 参数给即将产生的映像打上标签名称;而 `-f` 则用来指出自定义命名及所在路径的 Dockerfile 文档[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值