本人使用的是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查看
-
kunyuan@kys-MacBook nginx % docker images
-
REPOSITORY TAG IMAGE ID CREATED SIZE
-
php-site1 1.0.0 4472a92fb3ba 32 minutes ago 405MB
-
mysql 5.7 87eca374c0ed 6 days ago 447MB
-
nginx latest 62d49f9bab67 12 days ago 133MB
-
php 7.4-fpm 41b17b0f90e6 2 weeks ago 405MB
-
docker/getting-started latest 3ba8f2ff0727 5 weeks ago 27.9MB
-
centos 7 8652b9f0cb4c 5 months ago 204MB
-
docker/desktop-vpnkit-controller v1.0 79da37e5a3aa 14 months ago 36.6MB
-
k8s.gcr.io/pause 3.2 80d28bedfe5d 14 months ago 683kB
-
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项目文件
配置文件内容如下:
-
server{
-
listen 8082;
-
server_name localhost;
-
location / {
-
root /www;
#对应虚拟机挂载到nginx容器中的/www目录
-
index index.php index.html index.htm;
-
}
-
location ~\.php(.*)$ {
-
root /www;
#对应主机挂在到php容器中的/www目录
-
fastcgi_pass php:9000;
#此地址为php容器的内网ip
-
fastcgi_index index.php;
-
fastcgi_param SCRIPT_FILENAME /www
$fastcgi_script_name;
#--注意目录要与代码目录一致
-
include fastcgi_params;
-
}
-
}
启动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容器安装
-
#进入启动的php:7.4-fpm 23f25c24d6e8 为容器id
-
docker
exec -it 23f25c24d6e8 bash
-
#进入目录bin
-
cd /usr/
local/bin
-
#安装扩展pdo_mysql
-
./docker-php-ext-install pdo_mysql
-
#安装扩展mysqli
-
./docker-php-ext-install mysqli
3、打包环境上传服务器
方法1:编写Dockerfile文件
-
FROM php:7.4-fpm
-
-
COPY . /www
-
WORKDIR /www
-
CMD [
"php",
"-S 0.0.0.0:8083",
"-t ./"]
docker build -t php-test:1.0.0 .
注意后面的.,当前目录
-
#--打包环境
-
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
查看评论