飞道的博客

【docker】docker从0开始部署PHP开发环境

445人阅读  评论(0)

本人使用的是mac,开发环境配置为mac下进行的。

1、本地开发环境配置

首先安装docker,直接按照官网步骤即可。https://docs.docker.com/docker-for-mac/install/

拉取php-fpm文件
docker pull php:7.4-fpm

mysql
docker pull mysql:5.7

拉取nginx文件
docker pull nginx

安装完可以用docker images查看


  
  1. kunyuan@kys-MacBook nginx % docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. php-site1 1.0.0 4472a92fb3ba 32 minutes ago 405MB
  4. mysql 5.7 87eca374c0ed 6 days ago 447MB
  5. nginx latest 62d49f9bab67 12 days ago 133MB
  6. php 7.4-fpm 41b17b0f90e6 2 weeks ago 405MB
  7. docker/getting-started latest 3ba8f2ff0727 5 weeks ago 27.9MB
  8. centos 7 8652b9f0cb4c 5 months ago 204MB
  9. docker/desktop-vpnkit-controller v1.0 79da37e5a3aa 14 months ago 36.6MB
  10. k8s.gcr.io/pause 3.2 80d28bedfe5d 14 months ago 683kB
  11. kunyuan@kys-MacBook nginx % docker run -it 41b17b0f90e6 bash


进入镜像系统 docker run -ti images-id /bin/bash

 

一个简单的环境搭建成功

2、写代码验证容器

建立测试目录 ~/nginx/conf ~/nginx/www

其中conf用来放置test-php.conf的配置文件,www用来放置PHP项目文件

配置文件内容如下:


  
  1. server{
  2. listen 8082;
  3. server_name localhost;
  4. location / {
  5. root /www; #对应虚拟机挂载到nginx容器中的/www目录
  6. index index.php index.html index.htm;
  7. }
  8. location ~\.php(.*)$ {
  9. root /www; #对应主机挂在到php容器中的/www目录
  10. fastcgi_pass php:9000; #此地址为php容器的内网ip
  11. fastcgi_index index.php;
  12. fastcgi_param SCRIPT_FILENAME /www $fastcgi_script_name; #--注意目录要与代码目录一致
  13. include fastcgi_params;
  14. }
  15. }

启动php容器

docker run --name php-web -v ~/nginx/www:/www  -d php:7.4-fpm

启动nginx容器

docker run --name php-nginx -p 8082:8082 -v ~/nginx/www:/www -v ~/nginx/conf:/etc/nginx/conf.d --link php-web:php -d nginx

 --link php-web:php 把 php-web 的网络并入 php-nginx nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm

启动数据库容器

docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

 

验证结果

 

如遇到提示没有安装php模块的时候,可进入php容器安装


  
  1. #进入启动的php:7.4-fpm 23f25c24d6e8 为容器id
  2. docker exec -it 23f25c24d6e8 bash
  3. #进入目录bin
  4. cd /usr/ local/bin
  5. #安装扩展pdo_mysql
  6. ./docker-php-ext-install pdo_mysql
  7. #安装扩展mysqli
  8. ./docker-php-ext-install mysqli

3、打包环境上传服务器

方法1:编写Dockerfile文件


  
  1. FROM php:7.4-fpm
  2. COPY . /www
  3. WORKDIR /www
  4. CMD [ "php", "-S 0.0.0.0:8083", "-t ./"]

docker build -t php-test:1.0.0 .

注意后面的.,当前目录


  
  1. #--打包环境
  2. docker save -o php-test.tar php-test

上传服务器后通过导入镜像

docker load -i php-test.tar

 

方法2

通过docker commit 方法保存镜像,docker save导出

 


转载:https://blog.csdn.net/loveruguo/article/details/116173309
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场