docker mysql开发环境_Docker 构建PHP+Apache+MySQL 开发环境
文章目錄
通过Docker 构建PHP+Apache+MySQL 开发环境,所有的服务(Apache,MySQL)和语言环境(PHP)都将在容器中运行,代码编写在宿主机内编写,并在宿主机的浏览器进行查看和debug
准备工作
构建镜像和创建容器
该教程主要做了以下工作
1.构建好了名为daocloud.io/mysql:5.5的镜像,并由该镜像创建了一个名为some-mysql的容器,并设置容器some-mysql的Mysql管理员密码为my-secret-pw,运行在后台。
2.基于镜像daocloud.io/php:5.6-apache 创建名为some-app的容器,并通过 Docker 容器间的 link机制,便可将 MySQL 的默认端口(3306)暴露给应用容器。
检查工作
接下来进入容器some-app,由于容器some-app已经在后台运行,所以我们可以通过命令进入容器的命令行界面,进入容器命令:1$ docker exec -it some-app /bin/bash
进入容器后首先检查容器PHP应用是否运行正常,执行命令1$ curl http://localhost
如果运行正常,应该会有html标签内容输出,如果有提示MySQL连接错误等提示,应检查PHP应用数据库配置是否正确,该容器PHP应用默认在/var/wwww/html/目录中,打开DB.php文件,检查数据库配置参数,并配置正确(数据库名字、用户名、密码),与容器some-mysql中配置一一对应。
自定义开发环境
通过端口映射,宿主机使用浏览器访问容器的PHP应用
由于Docker容器内并不包含图形浏览器应用,所以无法在容器内查看网页富文本内容。但我们可以通过端口映射的方式,通过宿主机的浏览器访问容器中PHP应用,命令行如下:1$ docker run --name some-app -p 127.0.0.1:80:80 --link some-mysql -d daocloud.io/php:5.6-apache
-p 127.0.0.1:80:80 表示将宿主ip与容器内ip端口进行映射
在本地机器填写代码和调试
容器some-appPHP应用目录默认在/var/www/html中,如果想要更改目录,比如我想在/var/下创建PHP开发目录php,则需要在/var/目录下创建php文件夹,命令如下:1$ mkdir /var/php
创建好目录后还需要更改Apache的配置中的网站根目录位置,由于镜像daocloud.io/php:5.6-apache是基于Ubuntu发行版本,所以Apache配置文件应该在/etc/apache2目录中,修改文件/etc/apache2/sites-available/000-default.conf、/etc/apache2/sites-available/default-ssl.conf,将内容DocumentRoot /var/wwww/html改为DocumentRoot /var/php,修改文件/etc/apache2/apache2.conf,将内容改为
修改好后重启Apache服务,命令如下:1$ apache2ctl restart
PS:重启apache服务可能导致退出容器,但不用担心,可以通过命令重新连接到容器中,命令如下:1$ docker exec -it some-app /bin/bash
重启后使用命令curl http://localhost检测是否已更改目录。
通过目录挂载方式将本地机器目录与容器目录进行挂载,将开发目录挂载到容器中,方便查看修改内容,具体命令如下:1$ docker run --name some-app -p 127.0.0.1:80:80 -v [本地目录]:[容器目录] --link some-mysql -d daocloud.io/php:5.6-apache
-v [本地目录]:[容器目录] 举个栗子: -v ~/dev/php:/var/php
最后
通过以上步骤,我们终于构建好开发环境了,以后如果要迁移到别的电脑中开发,只需要将修改的镜像迁移过去就可以了,其实整篇教程最终的命令是这个:1$ docker run --name some-app -p 127.0.0.1:80:80 -v [本地目录]:[容器目录] --link some-mysql -d daocloud.io/php:5.6-apache
这条命令包含了容器链接、端口映射、目录挂载,如果怕麻烦的话可以将这条命令写到脚本文件中,要使用时修改一下执行就好了。
最后不要忘记将容器
docker mysql开发环境_Docker 构建PHP+Apache+MySQL 开发环境相关推荐
- linux 下升级apache,CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache...
CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache 由于最近工作中遇到了一个在比较老旧RedHat系Linux发行版系统上升级安装Apache ...
- docker mysql 生产环境_Docker构建MySQL环境
一.运行 MySQL 容器 根据镜像说明可知: 默认的配置文件是:/etc/mysql/my.cnf 默认的数据目录是:/var/lib/mysql 最简单的启动方式: docker run -d - ...
- docker java 最小镜像_docker构建JDK最小镜像
一.构建最小JDK 1.解压jre # mv jre-8u181-linux-x64.tar.gz java1.8.tar.gz # tar -xvcf jre-8u181-linux-x64.tar ...
- apache mysql php 安装配置_Windows下Apache,MySql,PHP安装配置
本文目标 在Windows8.1 x64下 全手工安装Apache.PHP.MySQL,使用NetBeans调试第一个Hello,World!程序. 安装Apache 打开http://httpd.a ...
- xampp apache mysql配置_安装xampp(Apache+MySQL+PHP+PERL)
------------恢复内容开始------------ 安装过程种碰到的问题: 一.Apache无法启动--1.配置Apache,在config进行修改,把httpd.conf中的80端口全部修 ...
- mysql简单部署_Docker部署简单的mysql
![Docker远征](https://img.tnblog.net/arcimg/hb/656ec4beace04f5e9a7b1d58b6368639.jpg "Docker远征&quo ...
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
转自:http://www.cnblogs.com/mchina/archive/2012/11/28/2778779.html 一.简介 什么是LAMP LAMP是一种Web网络应用和开发环 ...
- xampp php搭建失败,ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败),thinkphpxampp...
ThinkPHP框架搭建及常见问题(XAMPP安装失败.Apache/MySQL启动失败),thinkphpxampp 本文为大家详细分享了搭建ThinkPHP框架时遇到的问题,为大家提供了解决方法, ...
- Apache+MySQL+PHP安装指南
L.A.M.P.(Linux, Apache, MySQL, PPH) 是开源软件的黄金组合,几乎每一个Linux的开发或管理人员都会有机会接触到LAMP,"怎么安装?"是问得最多 ...
最新文章
- 使用命令接口对KVM虚拟机进行简单的管理
- 初探maven插件机制
- ZOJ 3829 贪心 思维题
- reactjs生命周期回调(钩子)函数:componentDidMount componentWillUnmount
- java-commons-HttpClient超时设置setConnectionTimeout和setSoTimeout
- SAP Spartacus Page Layout - 页面布局设计
- MFC工作笔记0001---认识MFC
- CGLIB实现AOP,MethodInterceptor接口和Enhancer详解——Spring AOP(四)
- 求助ET服装打版软件
- 字节跳动-大数据研发面试准备
- 配置Skype for business 2015混合部署
- Unikernels 解读
- 闪马智能创始人兼CEO彭垚入选2021年度张江杰出人才拟表彰名单
- esp8266介绍和使用
- 《近匠》从Cubieboard到radxa:汤亮的第二次硬件创业
- Python 点滴 V
- 游戏编程之四 diectxdarw基础篇
- 百度云盘不限速下载工具(附带开源源码)
- 智微JMS901成功量产,附JMS901量产工具软件+固件+教程分享
- 机器人EV3初级、中级、高级课程课件
热门文章
- linux 内核加载错误 Invalid module format
- linux centos yum错误 You could try using --skip-broken to work around the problem
- Shodan API使用指南 撒旦网
- CentOS6安装devtoolset(使用高版本gcc)GCC 4.8 GCC 4.9 GCC 5.2
- DUILib 中的通知事件
- TCP、UDP绑定同一端口通信的解释
- Web服务器的工作原理
- WEB 容器、WEB服务和应用服务器的区别与联系
- 调试寄存器(debug registers, DRx)理论及实践
- xen tools代码结构