百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Docker搭建开发环境(Nginx+MySQL+PHP)

off999 2025-01-04 22:22 22 浏览 0 评论

注意事项

1、像MySQL配置文件、Nginx配置文件、网站根目录这种比较经常操作的需要先使用 docker cp 将文件从容器里复制到主机目录,docker run的时候直接挂载目录就可以了

2、docker run MySQL和Nginx的时候注意使用 --link实现容器之间通信

3、运行容器的时候注意使用 --ip 固定容器IP

安装 MySQL

mysql 需要挂载的目录

/var/lib/mysql
/etc/mysql/conf.d
/var/run/mysqld

挂载详情

# 主机目录:容器目录
/docker-data/web/mysql/data:/var/lib/mysql 
/docker-data/web/mysql/conf:/etc/mysql/conf.d 
/docker-data/web/mysql/mysql_sock:/var/run/mysqld

文件备份

将mysql的配置文件,自带数据库,sock配置 复制到主机目录

# docker cp container_ID:容器目录 主机目录
docker cp 2d19ae0acd5d:/var/lib/mysql /docker-data/web/mysql/data
docker cp 2d19ae0acd5d:/etc/mysql/conf.d  /docker-data/web/mysql/conf
docker cp 2d19ae0acd5d:/var/run/mysqld /docker-data/web/mysql/mysql_sock

目录分解

docker run 
--name mysql # 指定容器名称
-e MYSQL_ROOT_PASSWORD=root  # 初始化root用户的密码为root
-p 3307:3306 # 将容器的3306端口映射到主机的3307端口
--privileged=true # 给容器加上特定的权限,否则可能会出现常见容器失败的情况
-v /docker-data/web/mysql/data:/var/lib/mysql # 挂载目录 mysql数据文件
-v /docker-data/web/mysql/conf:/etc/mysql/conf.d # 挂载目录 mysql配置文件
-v /docker-data/web/mysql/mysql_sock:/var/run/mysqld # 挂载目录 mysql mysqld
--restart=always # 设置失败自动重启   可写为 --restart=on-failure:5  最多重启五次
-d mysql:5.7

命令实现

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3307:3306 --privileged=true -v /docker-data/web/mysql/data:/var/lib/mysql -v /docker-data/web/mysql/conf:/etc/mysql/conf.d -v /docker-data/web/mysql/mysql_sock:/var/run/mysqld --restart=always-d mysql:5.7

安装PHP

需要挂载的目录

/var/www/html 
/var/run/mysqld

挂载详情

# 主机目录:容器目录
/docker-data/web/www/:/var/www/html 
/docker-data/web/mysql/mysql_sock/:/var/run/mysqld

文件备份

# docker cp container_ID:容器目录 主机目录
docker cp 7da668050b8a:/var/www/html /docker-data/web/www

目录分解

docker run 
--name php 
-p 9000:9000 
--privileged=true 
-v /docker-data/web/www/:/wwwroot 
-v /docker-data/web/mysql/mysql_sock/:/var/run/mysqld 
--link mysql:mysql # 使用link实现两个容器之间的通信
--restart=always 
-d
php:7.2-fpm

命令实现

docker run --name php -p 9000:9000 --privileged=true -v /docker-data/web/www/:/wwwroot -v /docker-data/web/mysql/mysql_sock/:/var/run/mysqld --link mysql:mysql --restart=always -d php:7.2-fpm

扩展安装

# 进入容器执行命令安装扩展
docker-php-ext-install [扩展名称]

# 安装GD库
apt update  #更新软件源
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev #安装各种库
docker-php-source extract #解压源码
cd /usr/src/php/ext/gd  #gd源码文件夹
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2   #准备编译
docker-php-ext-install gd   #编译安装
php -m | grep gd
docker restart [container ID]#重启容器

安装Nginx

需要挂载的目录

/usr/share/nginx/html 
/etc/nginx/conf.d 

挂载详情

# 主机目录:容器目录
/docker-data/web/www:/usr/share/nginx/html 
/docker-data/web/nginx/conf.d:/etc/nginx/conf.d 

文件备份

# docker cp container_ID:容器目录 主机目录
docker cp e0babc8a32ad:/usr/share/nginx/html /docker-data/web/www
docker cp e0babc8a32ad:/etc/nginx/conf.d /docker-data/web/nginx/conf.d

目录分解

docker run 
--name nginx 
-p 8080:80  
--privileged=true 
-v /docker-data/web/www:/wwwroot
-v /docker-data/web/nginx/conf.d:/etc/nginx/conf.d 
--link php:php 
--restart=always 
-d 
nginx

命令实现

docker run --name nginx -p 8080:80  --privileged=true -v /docker-data/web/www:/wwwroot -v /docker-data/web/nginx/conf.d:/etc/nginx/conf.d --link php:php --restart=always -d nginx

Nginx配置文件参考

server {
        listen       80;
        server_name  tplay.yulongcode.com;

        root   /wwwroot/tplay/public; # 项目在容器里的目录
        index index.php index.html index.htm;

        location / {
            if (!-e $request_filename){
                   rewrite  ^(.*)$  /index.php?s=$1  last;   break;
            }
        }

        error_page   500 502 503 504  /50x.html;
     
        location ~ \.php$ {
            fastcgi_pass   PHP容器IP:PHP端口;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            include        fastcgi_params;
	   }
}

let the world have no hard-to-write code



作者:汪玉龙

原文:https://www.cnblogs.com/yulongcode/p/12719548.html

相关推荐

电脑开一会就蓝屏怎么回事(电脑为什么开一会就蓝屏)

电脑蓝屏原因:1.虚拟内存不足造成系统多任务运算错误2.CPU超频导致运算错误3.内存条的互不兼容或损坏引起运算错误4.光驱在读盘时被非正常打开所至5.遭到不明的程序或病毒攻击所至6.版本冲突7...

中文简体拼音输入法(简体中文注音输入法)
中文简体拼音输入法(简体中文注音输入法)

1.在桌面上找到输入法图标,点击下方的繁 2.如图所示,放下方变成简字样,就把输入法从繁体改为简体了输入法简体字改成繁体字更改方法如下例如使用的是vivoy5s的手机,我们打开手机,在手机桌面找到短信图标,点击图标,就...

2025-12-14 19:51 off999

注册表怎么删除(注册表怎么删除域用户配置文件)
  • 注册表怎么删除(注册表怎么删除域用户配置文件)
  • 注册表怎么删除(注册表怎么删除域用户配置文件)
  • 注册表怎么删除(注册表怎么删除域用户配置文件)
  • 注册表怎么删除(注册表怎么删除域用户配置文件)
ie无法打开internet站点(跨年时间是23点还是0点)

如电脑无法浏览网页,你可根据以下情况进行排障:1、宽带未连接。重新连接宽带。2、路由器故障。拆除路由器后,进行宽带连接试用。3、偶发性故障,如ADSL断流,电脑内存数据溢出等。重启电脑、modem试...

提高电脑速度的方法和技巧(提升电脑速度的方法)
提高电脑速度的方法和技巧(提升电脑速度的方法)

具体步骤如下:1.鼠标右键点击“计算机”图标,找到并选择“属性”。2.点击“高级系统设置”。3.点击“高级”-“设置”。4.点击“调整为最佳佳能”,点击“确定”即可完成。提升cpu性能的方法:1、在任务管理器里关闭没用的程序。2、通过超频来...

2025-12-14 18:03 off999

序列号查询入口在线查询(序列号查询怎么样说明是真的)

苹果查序列号入口可登陆苹果官网checkcoverage.apple.com进行查询,具体步骤如下:1、打开手机设置,点击“通用”;2、进入页面后点击“关于本机”;3、页面跳转后,我们就可以看到本机的...

局域网监控软件app(局域网监控软件app下载)

。超级眼是一款专业的公司电脑监控软件、局域网监控软件,它可以对员工电脑屏幕监控同时还可以对员工上网行为管理,提升员工的工作效率。通过浏览记录,管理端可以查看员工在工作时间浏览了什么网站,即时通讯可以让...

华为商城官网app下载(华为商城官方下载)

请您按照以下方式操作:EMUI5.X及以下:进入设置>应用管理>天气,点击启用天气应用,然后长按桌面空白区域,点击“窗口小工具”,找到“天气”小工具,并将“天气”小工具拖动到主屏幕空白区域...

安卓最好的本地视频播放器(安卓本地视频播放器排行榜)

1抖音视频2快看点视频3小蝌蚪视频4tiktok视频5樱花动漫视频6杏吧视频7YouTube视频8王牌视频视频9横风动漫视频10泰剧迷视频MoboPlayer是运行在移动设备上,...

手机能连上wifi却上不了网(手机连上wifi却上不了网怎么办,别人能用)

首先要确保你们的路由器有没有正常工作,可以使用其他手机或者数码产品连接该WIFI热点,如果都能正常连接和正常上网,那么一般来说这个无线路由器是可以正常工作的。2、其次要确保连接WiFi有问题的手机没...

各种显卡排名(显卡排行榜 2021)

1微星(MSI)显卡(全球出货量最大的显卡品牌,A+N)2丽台(Leadtek)显卡(全球最著名的专业绘图卡的厂商,N)3华硕(ASUS)显卡(台湾板卡四大天王之一,A+N)4蓝宝石(S...

电脑一键重装系统哪个最好用

1.系统之家一键重装大师。这款系统重装软件系统之家重装大师小编觉得很不错,操作简单,笔记本重装win7系统过程只需要一键操作就可以完成;界面美观,很大程度上优化了用户体验;下载重装速度快,采用新技术极...

打字最好的输入法(打字输入法哪个最快)

搜狗拼音输入法:会拼音就会,熟了也能打很快搜狗五笔输入法:这个我一直用,因为五笔用得不熟练,这个可以五笔拼音混输(优先选五笔的字),五笔输入法需要一定时间学习,学好了比拼音要快,而且相当准确,不像拼...

移动硬盘插电脑不显示(移动硬盘插电脑不显示盘符)
移动硬盘插电脑不显示(移动硬盘插电脑不显示盘符)

移动硬盘插上电脑不显示:1,进入设备和打印机,找到自己的移动硬盘,删除后再插入。2,打开设备管理器—通用串行总线控制器,找到USB大容量存储设备后右键卸载,接着在拔插一次移动硬盘。3,插入移动硬盘——打开设备管理器——磁盘管理,这个时候不出...

2025-12-14 13:51 off999

下载工具app(推特视频下载工具app)

答,kugo游戏下载器下载有几种方法:第一种:一般下载游戏,都是去官网上下载,因为这里下载不会出现有附带的垃圾广告链接一并下载安装到你的电脑上了。第二种:就是直接在浏览器上搜索你需要下载的游戏名称,然...

取消回复欢迎 发表评论: