基于 Dockerfile 创建 httpd 镜像时【RUN yum -y update】步骤报错

①故障现象

场景:基于 Dockerfile 创建一个最基本的 httpd 镜像

报错代码如下:

[root@localhost ~]docker build -t httpd:centos .
...
...
Step 3/9 : RUN yum -y update
 ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
 ---> Running in a0a858748903
CentOS Linux 8 - AppStream                      0.0  B/s |   0  B     04:00    
Errors during downloading metadata for repository 
使用Dockerfile创建一个基于CentOS 7的LAMP(Linux, Apache, MySQL, PHP)镜像,可以让你快速构建一个包含这些服务的基础环境。以下是创建这样一个Dockerfile的基本步骤: 1. **基础镜像**: 首先,从官方的CentOS 7基础镜像开始,你可以使用`FROM centos:7`。 ```Dockerfile FROM centos:7 ``` 2. **安装基本软件**: 安装Apache、MySQL服务器以及PHP。 ```Dockerfile RUN yum update -y && \ yum install -y httpd mysql-server php-fpm php-mysql ``` 注意这里假设了yum是可用的包管理器,如果容器内部需要更新源或使用dnf,需相应替换。 3. **配置Apache**: 确保Apache能运行并允许外部访问。 ```Dockerfile EXPOSE 80 CMD ["httpd", "-D", "FOREGROUND"] ``` 4. **初始化MySQL**: 如果需要,可以设置MySQL的root密码,并开启安全模式。 ```Dockerfile RUN sed -i 's/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/' /etc/my.cnf.d/server.cnf && \ sed -i 's/^skip-grant-tables/#skip-grant-tables/' /etc/my.cnf && \ mysql_secure_installation ``` 5. **启动MySQL服务**: 启动MySQL服务并在容器退出自动重启。 ```Dockerfile CMD ["mysqld", "--default-storage-engine=InnoDB"] & tail -F /dev/null ``` 6. **配置PHP-FPM**: 添加PHP-FPM到开机启动,指定监听端口。 ```Dockerfile RUN usermod -aG docker www-data && \ systemctl enable php-fpm.service ``` 7. **清理缓存**: 清理安装过程产生的临文件。 ```Dockerfile RUN yum clean all && rm -rf /var/cache/yum/* ``` 最后,将Dockerfile保存,并通过`docker build -t your-image-name .`命令构建镜像。构建完成后,你可以使用`your-image-name`作为基础镜像运行容器。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xucf1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值