用docker搭建php开发环境

5 篇文章 0 订阅
今天是2018.06.19

docker搭建php系列文章
[url=http://xieye.iteye.com/blog/2425200]用docker搭建php开发环境[/url]
[url=http://xieye.iteye.com/blog/2425211]用docker搭建php开发环境(2)[/url]
[url=http://xieye.iteye.com/blog/2425372]用docker搭建php开发环境(3)[/url]

本文主要参考了:
https://www.goozp.com/article/77.html
原作者:
咖灰怪’s Blog

总体来说,利用docker安装php环境分为两步。
1.安装docker。
2、安装docker下的php开发环境。

[b]中间的坑有无数。[/b]

[size=xx-large]1、安装docker[/size]

官方的文档其实已经非常详细了。
我在附件中也直接提供。

我的电脑是win7,需要使用虚拟机,官方的安装包里全都有。

安装程序名为 DockerToolbox.exe(https://docs.docker.com/toolbox/toolbox_install_windows/,这个是网址,点击页面的 get docker toolbox for windows这个大按钮,即可下载。)
基本按照默认即可(记住你的安装程序路径),为了防雷,需要先删除本机已经装好的git,和虚拟机。

安装完毕,生成三个快捷方式,打开Docker Quickstart Terminal,

初始化,初始化也是个大难点。
点击Docker Quickstart Terminal图标开始初始化,会有一个cmd窗口出现。

注意点:
注意点 1、boot2docker.iso文件总会自动远程下载,,最佳策略,中止安装,把安装程序路径下的boot2docker.iso拷贝到C:\Users\<UserName>\.docker\machine\cache中(总之,这个应该拷贝的目的地是可以通过cmd窗口看到的路径),然后把网线拔了,然后再次初始化动作。

额外说明,其实如果想要最新的iso也行,方法是:
https://api.github.com/repos/boot2docker/boot2docker/releases/latest
根据上面这个网址,找到html_url字段,然后用迅雷下载。


注意点 2、虚拟化设置
有可能需要改笔记本或者台式机的bios设置。
进去BIOS (惠普的电脑开机的时候 长按ESC进入BIOS)设置 Virtualization为enable。

这一步不同的机子不一样,只要进去了BIOS自己找这个设置在哪里。


假定你已经安装成功了,就能看到大鲸鱼。
执行命令
docker --version
可以看到你安装的docker的版本。我的是 18.03


[size=xx-large]2、安装php[/size]
如前所述。是参考了他人的文章,
[size=x-large](1)安装前的配置[/size]
[size=large]1、配置虚拟机的80和windows宿主机的80端口相连。[/size]
双击虚拟机图标。
菜单设置 - 网络 - 网卡1 - 连接方式 NAT - 端口转发 - 右边添加按钮,名称自己起,协议tcp,主机ip127.0.0.1,主机端口80,子系统端口80

注意这里,主机指windows宿主机,子系统指虚拟机。

[size=large]2、配置虚拟机的一个目录和windows宿主机的一个目录相连。[/size]
共享文件夹这么设置。
首先本地D:\ lenovo_d \ docker_study ,建立这个文件夹。
然后
虚拟机菜单 - 设置 - 共享文件夹 - 固定分配 - 添加按钮 - 名称 docker_study 路径,就是上面的本地路径。自动挂载是,访问权限,完全。

然后呢,自己测试一下,看在window宿主机的d盘目录下建立文件,是否在虚拟机里能看到这个文件。

可能需要重启虚拟机。


[size=large]3、使用putty连接docker。[/size]
为了更象在linux里使用docker,我使用了putty这个工具。
网上可以下载到,解压后即可使用。
下载地址:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
随便zip也行,或者msi也行。32也行,64也行,都能用。

ip
127.0.0.1
端口:
打开虚拟机图标,查看设置-网络- 端口转发 - ssh的主机端口。
账号填写docker,密码是tcuser。

点击login即可登陆虚拟机里的docker。
下文说的docker里,就是指打开putty登陆后的窗口。

[size=large]4、不是必须步骤,仅供参考。[/size]
现在,如果想要虚拟机的文件放在非c盘。
转移docker文件到D盘。
为避免c盘越来越大,可以转移虚拟机镜像到D盘。
首先,在资源管理器里面给D盘加目录D:\docker_machine,然后把C盘下面目录的machine这个目录剪切到D:\docker_machine下,
然后,在cmd命令行
mklink /J C:\Users\Administrator\.docker\machine D:\docker_machine\machine

这样,C盘那个目录就只是链接而已,不占用硬盘空间。


[size=x-large](2)安装docker-compose[/size]
这个东东,是相当于docker的强化命令。因为,docker下,通常会同时运行几个容器,例如对于php,来说,有php-fpm,nginx,mysql,redis这个地球人都知道的四大必备工具。

docker下,执行命令

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose



[size=x-large](3)php开发环境[/size]
本机,docker_study目录下建立 D:\lenovo_d\docker_study\zphal 目录
然后下载https://github.com/ZpGuo/zPhal-dockerfiles
点击下载zip文件,下载后,解压,再放到zphal目录下。

进入docker,
cd zphal/files

wget https://pecl.php.net/get/redis-3.1.6.tgz -O php/pkg/redis.tgz

然后,自己下载php自己的composer,版本1.6.5,需自己番 qiang,或者从我这篇文章的附件获取。文件名是composer.phar.拷贝到和redis.tgz一样的目录。


修改 D:\lenovo_d\docker_study\zphal\files\php\Dockerfile
把下面的话删除掉。

# Install Phalcon extensions
RUN cd /home \
&& tar -zxvf cphalcon.tar.gz \
&& mv cphalcon-* phalcon \
&& cd phalcon/build \
&& ./install \
&& echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/phalcon.ini


把下面的话删除掉。

COPY ./pkg/cphalcon.tar.gz /home/cphalcon.tar.gz


把下面的话删除掉。

rm rm -f /home/cphalcon.tar.gz


然后再加上composer的配置,完整版如下:

FROM php:7.2-fpm
MAINTAINER goozp "gzp@goozp.com"

# set timezome
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Install package and PHP Core extensions
RUN apt-get update && apt-get install -y \
git \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-install zip \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install opcache \
&& docker-php-ext-install mysqli \
&& rm -r /var/lib/apt/lists/*

# Copy extensions had downloaded
COPY ./pkg/redis.tgz /home/redis.tgz
COPY ./pkg/composer.phar /usr/local/bin/composer

# Install PECL extensions (Redis)
RUN pecl install /home/redis.tgz && echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini


# Install Composer
ENV COMPOSER_HOME /root/composer
# RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ENV PATH $COMPOSER_HOME/vendor/bin:$PATH

RUN chmod a+x /usr/local/bin/composer
RUN rm -f /home/redis.tgz

WORKDIR /data

# Write Permission
RUN usermod -u 1000 www-data




然后,在
D:\lenovo_d\docker_study\zphal\app 目录下建立一个index.php
内容是

<?php
phpinfo();


准备工作已经差不多了。

但是还需要修改国内仓库地址
sudo vi /var/lib/boot2docker/profile

在--label provider=virtualbox的下一行添加:
--registry-mirror=https://registry.docker-cn.com
3.重启docker

需要先执行
docker-compose build这个命令。

最后执行

docker-compose up -d


此时,容器都已正常启动。


最后,在宿主机打开浏览器
http://localhost/index.php

如果一切顺利(基本是不可能的),就会出现php的页面啦。

关闭容器,使用
docker-compose down这个命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值