docker搭建php系列文章
用docker搭建php开发环境
用docker搭建php开发环境(2)
用docker搭建php开发环境(3)
上一篇文章中,提到了使用docker过程中可能遇到的坑。
这次解释一下。
在win10家庭版中,这个坑是最大的。
因为,win7没有win10这么复杂的文件权限。
而 win10 专业版 自带 docker环境。
只有win10 home即家庭版,文件夹权限复杂,又没有专用的docker环境。
目前,我实际遇到的问题是mysql,其实真实原因是mysql5.7对文件权限要求高,linux下能满足,windows下讨厌,而别的软件没数据库这么讲究。
另外3个,nginx,php,redis貌似没有问题。
怎么解决mysql5.7在win10 家庭版中的docker?
其实就是解决两个问题,1配置文件,2数据文件。
经检测,mysql的日志文件对文件权限没啥要求。
配置文件,它无法读取共享文件夹的内容,因为无法设置644权限(win10权限复杂)。
解决方案是dockerfile文件中,使用copy命令 拷贝到 /etc/mysql/conf.d这个目录下。
就算搞定了!!再设置644,因为在镜像里,所以必定成功。
该目录下还有docker.cnf,如果愿意,可以写个空文件拷贝过去。
类似以下脚本,需要预先在D:\docker_study\zphal\files\mysql下,放两个自己写的配置文件。
COPY ./mysql-file.cnf /etc/mysql/conf.d/mysql-file.cnf
COPY ./docker.cnf /etc/mysql/conf.d/docker.cnf
RUN chmod 644 /etc/mysql/conf.d/docker.cnf \
&& chmod 644 /etc/mysql/conf.d/mysql-file.cnf
数据文件怎么办?谷哥后得知
mysql-db:
build: ./mysql
ports:
- "3306:3306"
volumes:
- ../data/mysql:/var/lib/mysql:rw
- ../logs/mysql:/var/lib/mysql-logs:rw
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: zphaldb
MYSQL_USER: zphal
MYSQL_PASSWORD: zphal123
restart: always
command: "--character-set-server=utf8 --explicit_defaults_for_timestamp --innodb-flush-method=O_DSYNC --innodb-use-native-aio=0 "
最后那两个innodb的命令,其实是让mysql放宽权限的参数。使用即可搞定。
同理,假设不使用docker-compose,直接用命令启动mysql容器也一样,把那两个命令加上即可。
最后,本文关于mysql,这么搞的目的都是希望mysql的数据能够单独保留在容器外。假设不在乎这个,数据依然在容器内,那么完全不需要这么麻烦,直接启动容器即可。
分享到:
相关推荐
NULL 博文链接:https://xieye.iteye.com/blog/2425200
docker 快速搭建php环境 docker包,一键启动开发环境,docker 快速搭建php环境 docker包,一键启动开发环境
本文主要解决的是在使用 Docker 搭建 PHP 开发环境时遇到的权限问题。具体表现为:当我们将宿主机上的代码目录挂载到 Docker 容器中时,由于宿主机与容器内的文件系统用户权限不同,导致容器内的 PHP 应用无法正常...
快速的搭建一个php开发环境,镜像包括php,mysql,nginx,适合php的开发者
docker搭建适合thinkphp5的lnmp+redis开发环境,nginx版本为最新版本 php版本为7.3 mysql版本为5.7 需要先安装了composer 和docker环境 在html目录下面执行composer update下载第三方开发包 之后执行docker-compose ...
基于Docker的完整PHP开发环境。 支持各种通用服务,所有这些都预先配置为提供完整PHP开发环境。 首先使用Docker-然后再了解它! 基于Docker的完整PHP开发环境。 支持各种通用服务,所有这些都预先配置为提供完整PHP...
本教程将详细解释如何使用docker-compose搭建一个包含PHP 7.4(集成Swoole和Swoole Loader扩展)以及MySQL 5.7的开发环境。 首先,让我们了解Docker。Docker是一种开源的应用容器引擎,它允许开发者打包他们的应用...
docker搭建适合thinkphp6的lnmp+redis开发环境,nginx版本为最新版本 php版本为7.3 mysql版本为5.7 redis版本为5.0,thinkphp6的代码放到html目录下面 执行docker-compose up -d ,启动容器
在Ubuntu操作系统上搭建PHP开发环境是一项常见的任务,尤其对于开发者来说,这有助于创建和测试基于PHP的Web应用程序。本文将详细介绍如何在Ubuntu上配置Apache服务器、安装MySQL数据库、添加PHP支持以及部署...
docker下 搭建 PHP+mysql+redis+nginx 开发环境, 并实现一键自动化部署,保证了在各个平台上的一致性,既方便又高效。
Homestead 是一个官方预封装的 Vagrant Box,也就是一个虚拟机,但是跟 docker 比,它占用体积太大,启动速度慢,同时响应速度很慢,现在有了 docker 这种更好的方式,可以轻松方便的搭建整套 PHP 开发环境。...
本文详细介绍了如何在Linux环境下搭建LAMP环境,包括卸载旧版本、系统环境部署及调整、安装所需开发包以及具体组件的安装过程。遵循以上步骤,您可以成功地在自己的Linux系统上搭建起一套完整的LAMP环境,从而支持...
主要介绍了win10 docker-toolsbox 搭建php开发环境的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下