docker 中搭建php环境经验分享
目录
本次安装的推荐配置:
一、虚拟机安装centos7
vm虚拟机需要4g内存,网络使用nat模式设置静态ip、50G硬盘、1cpu、2核(踩坑经验:太低配置重启后会开不了机)
开机后
查看版本要在3.10以上
更新系统组件
二、安装docker
删除旧docker
安装工具
配置docker的yum源
安装docker
启动docker
设置开机启动
设置镜像国内加速(踩坑经验:设置多个源头,不然会很慢)
创建文件
输入源头url
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com/",
"https://reg-mirror.qiniu.com/"
]
}
EOF
重启配置
重启docker
设置容器局域网,容器间相互访问 (心得:容器互相访问,不用通过宿主机,更快)
查看局域网是否创建成功
三、安装php
下载php镜像
(踩坑经验:后面要带fpm)
使用镜像生成临时容器 ,名为:test_php7.4.3,用来拷贝配置文件(踩坑经验:空文件夹做共享,会将容器的配置文件清空)
使用 docker ps 命令查看是否创建成功
创建需要被共享的文件夹
将镜像内文件拷贝出来
(左边是容器,会连同文件夹一起复制过去,右边是放进哪个文件夹里)
启动正式容器
docker run
--network my_network
--name prod_7.4.3-fpm
--restart=always
-v /data/php7.4.3/etc:/usr/local/etc
-v /data/nginx1.24.0/html:/var/www/html
-d php:7.4.3-fpm
备注:--restart=always 重启自动启动容器
没问题后,停止临时镜像,并删除临时镜像
php开通 mysql pdo 扩展,php连接mysql会用到
进入php容器后
查看php扩展模块
安装扩展
四、安装nginx
下载镜像
镜像生成临时容器(用来拷贝配置文件)
使用docker ps 查询是否启动成功
创建需要被共享的文件夹
mkdir -p /data/nginx1.24.0/conf/cert
mkdir -p /data/nginx1.24.0/conf/conf.d
mkdir -p /data/nginx1.24.0/html
mkdir -p /data/nginx1.24.0/log
mkdir -p /data/nginx1.24.0/ssl
将镜像内文件拷贝出来
(左边是容器,会连同文件夹一起复制过去,右边是放进哪个文件夹里)
docker cp [临时容器id]:/etc/nginx/conf.d /data/nginx1.24.0/conf
docker cp [临时容器id]:/etc/nginx/nginx.conf /data/nginx1.24.0/conf/nginx.conf
docker cp [临时容器id]:/usr/share/nginx/html /data/nginx1.24.0
启动正式容器
docker run
--network my_network
-p 80:80
-p443:443
--name prod_nginx1.24.0
--restart=always
-v /data/nginx1.24.0/conf/nginx.conf:/etc/nginx/nginx.conf
-v /data/nginx1.24.0/conf/cert:/etc/nginx/cert
-v /data/nginx1.24.0/ssl:/etc/nginx/ssl/
-v /data/nginx1.24.0/conf/conf.d:/etc/nginx/conf.d
-v /data/nginx1.24.0/log:/var/log/nginx
-v /data/nginx1.24.0/html:/usr/share/nginx/html
-d nginx:1.24.0
备注:--restart=always 重启自动启动容器
没问题后,停止临时镜像,并删除临时镜像
五、安装mysql
下载镜像
开启临时镜像(用来拷贝配置文件)
创建需要被共享的文件夹
将镜像内文件拷贝出来
(左边是容器,会连同文件夹一起复制过去,右边是放进哪个文件夹里)
docker cp [临时容器id]:/var/log /data/mysql5.7.43
docker cp [临时容器id]:/var/lib /data/mysql5.7.43
docker cp [临时容器id]:/etc/mysql/conf.d /data/mysql5.7.43
docker cp [临时容器id]:/etc/mysql/mysql.conf.d /data/mysql5.7.43
启动正式容器
docker run
--network my_network
--name prod_mysql5.7.43
--restart=always
-p 3306:3306
-v /data/mysql5.7.43/log:/var/log
-v /data/mysql5.7.43/lib:/var/lib
-v /data/mysql5.7.43/conf.d:/etc/mysql/conf.d
-v /data/mysql5.7.43/mysql.conf.d:/etc/mysql/mysql.conf.d
-v /etc/localtime:/etc/localtime:ro
-e MYSQL_ROOT_PASSWORD=root123456
-d mysql:5.7.43
备注:--restart=always 重启自动启动容器
没问题后,停止临时镜像,并删除临时镜像
# 进入容器
# 创建用户并开启远程登录
# 创建数据库并设置字符集
# 给账号授权数据库
# 刷新权限
使用远程工具连接mysql,并建立一个user用户表,后面用来测试
六、运行php项目
将php项目通过ftp上传到 /data/nginx1.24.0/html (上面配置了这个地址会共享到容器内对应的文件夹)
新增一个网站配置
hosts新增一行 (你的windows电脑)
重启docker
在php项目中,新增一个访问数据库的代码
项目连接mysql
打开浏览器测试
都是踩坑经验,无私分享,有问题欢迎留言,共同进步!
到此这篇关于docker 中搭建php环境经验分享的文章就介绍到这了,更多相关docker 搭建php环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
- uDock for Mac(Dock插件/系统扩展软件) v4.2 免费安装版
- Dockerfile中CMD和ENTRYPOINT命令详解
- Docker 安装 PHP
- docker 中搭建php环境经验分享
- RocketDock(win7仿苹果MAC任务栏) v1.3.5 汉化纯净绿色版
- docker 命令报异常permission denied的解决方案
- 如何免费安装注册Stardock Deskscapes?梦幻桌面安装教程
- 微软系统应用窗口美化程序 Stardock WindowBlinds 11.02 (x64) 多语言特别版
- docker.service启动报错的一次排查详解
- 使用Docker的NFS-Ganesha镜像搭建nfs服务器的详细过程