想要将开发中的php环境快速部署,所以想要打个镜像
文件准备
新建文件夹,如docker-php,讲php项目拷贝到该路径下,并新建Dockerfile,编辑如下:
FROM php:7.4-apache
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install mysqli
COPY src/ /var/www/html/
EXPOSE 80
基于docker库的php:7.4-apache镜像,并使用RUN安装mysql扩展,并将当前宿主机docker-php目录下的src子目录 拷贝到镜像的/var/www/html目录,也就是php代码路径,并暴露服务端口80
编译镜像
使用docker build命令在当前目录.编译成名为php-apache-wy的镜像
docker build -t php-apache-wy .
启动容器
以php-apache-wy镜像启动容器,端口映射宿主机8092对应容器80端口。
docker run -d -p 8092:80 php-apache-wy
Mysql 连不上问题解决
访问127.0.0.1:8092发现数据库连接报错,排查发现数据库url是宿主机写的localhost,容器是没办法访问到宿主机的mysql。
在宿主机上执行 ipconfig(windows)发现虚拟网卡的ip是172.21.240.1,修改php代码中数据库url
重新走一下 编译镜像、启动容器步骤,(ps记得删除之前的容器和镜像),再重新访问127.0.0.1:8092发现服务正常~