详解Docker 下开发 hyperf 完整使用示例

来源:脚本之家  责任编辑:小易  

下面是安装 Docker 客户端并在上面运行容器的简单步骤。1. 下载 Boot2Docker在

Hyperf官方网站

如果你是数据中心或云计算IT圈子的人,这一年多来应该一直在听到普通的容器、尤其是Docker,关于它

Hyperf 官方文档安装篇

php和mysql一般是独立的两个服务。绑定 MySQL 数据容器(本地)首先,让开发者

1. docker 使用

首先要理解Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植

docker search 列出 hyperf 镜像 docker pull 下载镜像到本地 运行 镜像并且将目录挂载到当前目录下文件夹 内,同时依照 /bin/sh 的方式运行 进入到 hyperf-skeleton 目录,此目录是和本地挂靠的

VOLUME 命令主要是在开发环境下非常有用:编辑代码的时候,直接在宿主机里进行编辑,然后

$ docker search hyperf $ docker pull hyperf/hyperf $ docker run -v $PWD/:/hyperf-skeleton -p 9501:9501 -it --entrypoint /bin/sh hyperf/hyperf $ cd hyperf-skeleton

我觉得丑和美的根本区别不是你觉得好看不好看。因为每个人的审美是不一样的,总会有忠实粉丝打击其他品牌拥护自己支持的品牌。我觉得丑应该是没有自己真正的设计语言。第一种完全是抄袭国外的品牌logo加微创新,或者第二种随便找个设计师设计几份出来,老板挑一份与自己品牌稍微搭界的,然后找一个老实人不忽悠来解释一通。一个东西一旦有了内涵,就完全不一样了,就像黄渤和刘梓晨一对比,你就会觉得黄渤很帅!通过我上面说的就能知道了,1.奇瑞,牵强的说什么中间的A又像人,预示以人为本,又像C+A+C,预示人的翅膀,又像W+H是芜湖的拼音。我只能说你也太扯了吧,就你能看得出来吧。直接说我是模仿讴歌的,然后稍微修改了长度就

2. 镜像容器运行后,并在容器内安装 Composer

美家美户总结:1、开窗保持房屋通风透气法。通过让室内空气的自然流通更替来带走和稀释室内的有害气体。此方法最为原始也是最长效有用的方法。2、植物清除法。此类植物有,吊兰虎皮兰常春藤芦荟龙舌兰非洲菊。3、纳米活矿石吸附法。用具有吸附功能的活矿石、活性炭、竹炭清除这些有害气体,也是目前大家最广泛使用的方法。4、甲醛清除剂清除法。方法是最直接有效的,但是对产品的要求也非常专业,目前此类产品有化学类产品、纳米除醛酶、植物提取液除甲醛产品等。5、土方法。300克红茶泡热茶两脸盆水,放入居室中,并开窗透气。另外还可以在室内放些柚子皮、橘子皮、菠萝等。这些东西都是有一定作用的。6.纳米技术吸收分解法,装修后的

先下载 Composer 进 docker 容器内

每个女人不管多大年纪,心里都住着一个公主,都幻想着能够穿着仙女裙,穿着水晶鞋,但是事实是我们不是谁的公主,我们要工作要照顾家庭,照顾孩子,但是我们的心里还是有一个公主梦~pink粉真的非常美的一个颜色,让人看一眼就难以忘怀,喜欢粉色的女人多半是浪漫的,多情的,慵懒的,迷人的是不是非常的美呢?我想你看了也一定会动心吧?不过皮肤暗沉的美眉们就不推荐了哈,这是白皮美眉们的专属色呢,没办法谁叫她们白呢哈哈喜欢小编的分享就关注~哈密瓜姑娘~吧。每天都会及时更新最新的流行咨询和时尚穿搭

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ wget https://mirrors.aliyun.com/composer/composer.phar

3. 修改执行权限

此操作是为了解决 Composer 不允许 root 权限执行的限制

同时为切换用户时,可以直接操作

生产环境下不推荐 777 授权方式

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ chmod -R 777 ./composer.phar

4. 移动 composer 至 bin 目录下面,并且改名为 composer

生产环境下不推荐 777 授权方式

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ mv composer.phar /usr/local/bin/composer

5. 修改 root 密码

同时因为不清楚 root 密码,我们直接先做好修改

密码需要重复输入两次,并且不会显示,请注意

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ passwd root

6. 可以查看一下是 linux 发行版版本(命令会有所区别)

官方的镜像为 Linux 的 alpine

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ cat /etc/os-release

7. 建立一个指定 GID 的组

官方的镜像为 Linux 的 alpine 和很多小伙伴用的 Centos 命令会有所区别

如果是自己的建立的镜像,按照发行版本命令走就好了

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ addgroup -g 10001 -S www

8. 建立一个指定 UID 的用户

指定 shell, 让它属于指定的用户组。

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ adduser www -u 20001 -D -S -s /bin/bash -G www

9. 让新建的用户可以使用 su - 到 root 用户下,

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ chmod 4755 /bin/busybox

10. 切换至 www 用户执行 composer

su www 切换用户

whoami 查看当前用户

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ su www $ whoami

11. 将 Composer 镜像设置为阿里云镜像,用于加速国内下载速度

当然是否使用阿里云镜像看个人需求(无广告嫌疑)

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

12. 通过 Composer 安装 hyperf 骨架

安装时选择看个人需求哈!

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ composer create-project hyperf/hyperf-skeleton

13. 查看一下配置等信息

一般情况下,hyperf 官方的源镜像都是配置好的

以下只是提供一下命令

查看 swoole

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

$ php --ri swoole $ php -i | grep ini

14. php.ini 内写入一下信息

特别注意 Off 中 O 为大写

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

extension="grpc.so" extension="redis.so" extension="swoole.so" swoole.use_shortname = 'Off'

15. 存在兼容性问题的扩展

电热水器第一次安装好后或清洗后上满水一般是不用人再上水的,他是用凉水把热水往出“顶”,只要你使用热水器同时就自动上满了水。你打水时会不会水压低并没有打进去水,或打的不满,第二可能你使用时刚好自来水压低没力量把热水顶出来,第三可能你只打开了出热水阀而进凉水阀原来就关着现在又没记着打开,没进水热水当然出不来,第四出热水管道堵塞(多为水锈或异物)。有时水硬锈多没除锈,水垢把进水口都堵了。有很少发生的意外在这提一下,1进水阀不能关,关了水在加热时热涨高压,如果这时减压阀失灵(弹簧或顶片生锈或水锈堵塞)热水器就会爆炸,电热器干烧就会烧穿着火漏电;2是进水开着偶然停水热水器里的水会一点一点向下流入自来水管

由于 Hyperf 基于 Swoole 协程实现 而 Swoole 4 带来的协程功能是 PHP 前所未有的,所以与不少扩展都仍存在兼容性的问题。 以下扩展(包括但不限于)都会造成一定的兼容性问题,不能与之共用或共存: xhprof xdebug blackfire trace uopz

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

如何使用docker来制作我现在正在使用的系统的镜像

在使用Docker的过程中,我们除了从Docker Hub上下载已经做好的镜像,很多时候需要我们自己制作镜像。下面想在这个文章中说明一下镜像的制作方法。

制作镜像的方式主要有两种:

通过docker commit 制作镜像

通过docker build 制作镜像

这两种方式都是通过改进已有的镜像来达到自己的目的。制作基础镜像,会在另外一篇文章“从零开始制作基础镜像”中介绍。

docker commit

docker commit 是往版本控制系统里提交一次变更。使用这种方式制作镜像,本质上是运行一个基础镜像,然后在基础镜像上进行软件安装和修改。最后再将改动提交到版本系统中。

选择基础镜像

基础镜像的选择要结合自己的需求。可以选择已有的应用镜像来改造,也可以选择Ubuntu,Debian,OpenSuse这类基础系统镜像

我们以ubuntu为例子来说明

步骤1:运行ubuntu 镜像

docker run -i -t ubuntu /bin/bash

步骤2:安装软件并修改软件配置, 比如:安装apache2

apt-get -yqq update

apt-get -y install apache2

安装完成后,对apache2进行配置和修改

步骤3:退出docker并保存镜像

使用“exit”命令退出容器

运行docker comit 命令, 进行保存

docker commit 61412230ae46 own-apache2

docker commit 命令参数说明

命令格式

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS:

-a, --author= 提交的镜像作者

-c, --change=[] Apply Dockerfile instruction to the created image, 没用过

-m, --message= 提交时的说明文字

-p, --pause=true 在commit时,将container 暂停

CONTAINER:

可以使用container 的名字或者ID

REPOSITORY

指定镜像仓库,上述例子中,指定的是本地存储

可以指定远程镜像仓库,如docker hub。也可自建仓库来存放image

TAG:

镜像TAG

docker build

使用docker build创建镜像需要编写Dockerfile.

步骤:

编写自己的Dcokerfile

运行docker build 命令打包镜像

仍然以apache打包为例子。以下是Dockerfile的例子

FROM ubuntu:latest

MAINTAINER sky

#Add 163 mirror for apt

ADD sources.list /etc/apt/sources.listADD .bashrc /root/.bashrcENV DEBIAN_FRONTEND noninteractive# PackagesRUN rm -rf /var/lib/apt/listsRUN apt-get update -q --fix-missingRUN apt-get -y upgrade#ubuntu wwwRUN apt-get install -y apache2 curl libapache2-mod-php5 php5-curl php5-gd php5-mysql rsync mysql-client -qqRUN apt-get autocleanRUN rm -rf /var/lib/apt/lists/*# Setup environmnt for apache's init scriptENV APACHE_CONFDIR /etc/apache2ENV APACHE_ENVVARS $APACHE_CONFDIR/envvarsENV APACHE_RUN_USER www-dataENV APACHE_RUN_GROUP www-dataENV APACHE_RUN_DIR /var/run/apache2ENV APACHE_PID_FILE $APACHE_RUN_DIR/apache2.pidENV APACHE_LOCK_DIR /var/lock/apache2ENV APACHE_LOG_DIR /var/log/apache2ENV LANG CRUN mkdir -p $APACHE_RUN_DIR $APACHE_LOCK_DIR $APACHE_LOG_DIRRUN find "$APACHE_CONFDIR" -type f -exec sed -ri ' \ s!^(\s*CustomLog)\s+\S+!\1 /proc/self/fd/1!g; \ s!^(\s*ErrorLog)\s+\S+!\1 /proc/self/fd/2!g; \' '{}' ';'EXPOSE 80CMD ["apache2", "-DFOREGROUND"]

编辑完成后,在与Dockerfile同一目录下运行docker build 命令

docker build -t apache-img .

如果没有命令出错,docker build会持续运行直到镜像创建完成

而创建的过程本质上是运行一个镜像,然后在镜像中按序执行在Dockerfile中的命令,直到执行结束。

如果中间有命令执行失败,镜像创建会停止。这时就需要看log,并修改Dockerfile,然后再次执行docker build

注:两种镜像创建方式的对比:

docker commit

docker build

难度相对容易,适合新手和对Linux不熟悉的用户相对难,要求有一定的linux和脚本基础知识

文档化

文档化在通过其他文件来实现

Dockerfile本身就是比较好的文档,可读和可理解性比较强。也可配合其他文档带来详细说明

升级,维护

后续升级和维护麻烦,需要再次运行镜像并对内部软件进行升级或者安装新软件增加特性

后续升级和维护会相对简单,可以直接在dockerfile中更改并增加新特性

具体选择哪种方式来制作镜像需要结合实际情况来选择

Dockerfile 关键字详解

FROM

FROM用来指定基础包。在上面的例子中,基础包用的是ubuntu。

MAINTAINER

镜像作者信息,或者维护人员信息

ADD

将文件拷贝到Container内文件系统对应的路径

格式 ADD <src file> <dst file>

所有拷贝到Container中的文件和文件夹权限为0755,uid和gid为0

如果需要修改owner用户或者权限,需要使用RUN进行修改

ADD文件,文件路径要在docker build<PATH>中指定的<PATH>下

RUN

创建镜像时执行

ENV

用来设置环境变量

EXPOSE

Container内部服务开启的端口

主机上如果要使用,还需要在启动Container时,做host-container的商品映射

使用EXPOSE后,一些自动化布署工具可以直接读取这个信息,自动进行端口映射

EXPOSE可以有多条,指定多个端口

WORKDIR

切换工作目录,可进行多次切换(相当于cd命令)

切换目录对RUN,CMD,ENTRYPOINT有效

USER

执行container的用户,如未指定,则默认使用root用户

ENTRYPOINT

Container启动时执行的命令,一个Dockerfile中只能有一条ENTRYPOINT

ENTRYPOINT没有CMD的可替换特性

CMD

Container 启动时执行的命令,一个Dockerfile 中只能有一条CMD命令,如果有多条则只执行最后一条CMD

如果有多条命令希望在启动后执行,可以考虑使用shell 脚本

与ENTRYPOINT的区别

CMD的主要用途是为可执行的container提供默认命令

CMD在运行时是可替换的,比如

在ubuntu中,CMD指定的是/bin/bash。默认情况下运行ubuntu,container中的/bin/bash会被执行

如果使用docker run指定运行命令,那CMD会被替换掉

如:docker run ubuntu /bin/echo "this is a echo". 这时,container 启动后会执行echo 而不是/bin/bash了

ENTRYPOINT是不会替换的,如果在ubuntu镜像中加入ENTRYPOINT,那ENTRYPOINT在启动后会先被执行

CMD可以为ENTRYPOINT来提供参数

例子:

FROM ubuntu:14.10

ENTRYPOINT ["top", "-b"]

CMD ["-c"]

VOLUME

语法:VOLUME [PATH]

VOLUME指令用来设置一个挂载点,可以用来让其他容器挂载以实现数据共享或对容器数据的备份、恢复或迁移

可以将本地文件夹或者其他Container的文件夹挂载到Container中

docker linux 用哪个

一个利用LXC建立起来的一个容器,用于封装作业程序,运行库和其他相关的文件,以便可以方便地部署或者开发(不需要再次配置运行环境)。

大部分情况下这些container可以像游戏机的卡带/DVD一样插入系统,直接运行 :)

同时这个软件的开发者也叫同样的名字 Docker。

怎么使用Docker搭建PHP开发环境

在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp、xampp、mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnmp)或者逐个安装做需要的软件。前者虽然简单,但太不灵活,想要安装额外的软件或者版本会很麻烦或者干脆不知道如何下手;后者除了费时费力,占用本机资源过多,可能会导致系统运行缓慢,而且如果你忘了及时生成快照,一旦失误,追悔莫及。

幸好,Docker来了!它简单易用,灵活多变,方便迅捷,扫除了以上种种弊端。如果你想稍微详细的认识下这位虚拟化界的明星,传送门( 快速理解Docker )。

安装Docker

平时开发的环境一般都是Mac或者windows,Linux暂时没有研究,所以接下来只针对前两者写下步骤,这两个平台,官方都推荐了两种安装方式:app和工具包(toolbox)。注:app方式对系统版本和配置会有一定要求,而且Windows需要你安装微软虚拟化产品Hyper-V,具体见app链接页面。

APP

https://docs.docker.com/docke...

https://docs.docker.com/docke...

工具包

https://www.docker.com/produc...

以上方式本质上都会在你的系统中安装docker-engine、docker-machine、docker-compose和VirtualBox(除了Windows的app方式)。因为docker高度依赖linux内核提供的cgroup,namespace 等特性和接口,所以mac和windows平台需要使用docker-machine和虚拟机在后台创建运行一个linux内核。

而我的安装方式就是直接在 Mac 上使用brew,如果你未曾安装brew,则在终端执行以下代码:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装docker所需要的包:

brew install docker docker-machine docker-compose virtualbox

创建一个docker-machine:

docker-machine create -d virtualbox default

注:-d 指定使用virtualbox来创建default 为machine名称

告诉主机如何找到docker-machine:

echo $(docker-machine env ) >> .zshrc

注:这里的.zshrc是我的用户配置文件,如果你用bash,可以改为.bash_profile。

启动docker-machine:

docker-machine start default Compose你的应用

docker-compose是用于定义和运行复杂Docker应用的工具。你可以在docker-compose.yml文件中定义一个多容器的应用,然后使用一条命令来启动,然后所有预先定义好的操作都会被自动完成。

为了不重复造轮子,直接使用github上的第三方包。当然你也可以亲自构建每一个你所需要的容器镜像,然后用docker-compose.yml将所有容器组织起来运行,但这需要你具备一定的linux基础和docker的运行机制和相关语法。

本人正在学习 laradock 这个基于Docker的开发环境包,然后根据自己的需要删除了一些我认为不常用的部分、修改了部分配置以及增加了Elasticsearch容器,最终新开了自己的仓库 DevDock 。当然,也推荐使用laradock。

我的仓库目前支持的容器组合:

nginx , php-fpm , mysql , redis , mongo , apache2 , memcached , elasticsearch , workspace .

注:workspace和php-fpm一般会被其他容器所依赖,所以会自动运行,启动时不必指定。

进入到你的应用的上级目录:

git clone https://github.com/RystLee/DevDock.git

修改hosts

如果直接安装启动,是可以通过Docker IP : 192.168.99.100,就能直接访问nginx的,但一般而言为了方便记忆,我们会去修改hosts文件,增加一条:

192.168.99.100 laravel.dev

修改你的nginx中的站点配置文件:

在DevDock目录下找到nginx,修改sites目录下的站点配置文件,通过修改本地的hosts来自定义域名,并在nginx容器中的sites文件夹下,修改相应的域名映射。

server_name laravel.dev

安装启动应用

cd DevDock docker-compose up -d nginx mysql ... # 后面跟上你想使用的容器即可

然后,耐心地等待开发环境自动搭建完成即可,如果中途出现错误,一般是因为GFW,网络会不太通畅,重新执行一两次就好,完成之后,打开浏览器,访问: http://laravel.dev 即可。

如何在 Windows 上运行 Linux 容器

首先,我们来做一下准备工作,计算机的大概配置内存8GB和64

位的计算机,可以运行 Windows 10 或 Windows Server。已经加入了 Windows

预览体验计划(Insider),这样才能运行带有 Hyper-V 支持的 Linux 容器。2017 年 10 月发布的Windows 10

Fall Creator update,这个版本可以让你无需 Windows 预览体验身份即可使用带有 Hyper-V 支持的 Docker

技术。大幅度保护你的隐私。从网上下载Docker安装XZ 工具,解压 Ubuntu 宿主容器镜像时需要它。

加入了Windows 预览体验计划(Insider),可以跳过这步。没有加入就需要注册该计划,使用你在 Windows 10 中的微软个人账户登录,并在预览体验计划首页点击“注册”,接受条款并完成注册。

打开 Windows 开始菜单中的“更新和安全”菜单,并在菜单左侧选择“Windows 预览体验计划”。根据你个人的需要在 Windows 提示“你的 Windows 预览体验计划账户需要关注”时,点击“修复”按钮。

在Windows

预览体验计划的面板点击“开始使用“,显示时使用你要关联的账户进行登录时说明你的微软账户没有关联到你的 Windows 10

系统,如果需要Windows 预览体验计划中收到何种内容。要得到 Docker 技术所需要的 Hyper-V

隔离功能,你需要加入“快圈”,两次确认后,重启 Windows。重启后,慢慢等待更新完成。

接下来是安装 Docker for Windows,从网上下载 Docker for Windows。可以去Docker Store下载软件。

下载完成后,安装,并在需要时重启,重启后,Docker 就已经启动了。Docker 要求启用 Hyper-V 功能,因此它会提示你启用并重启。点击“OK”来为 Docker 启用它并重启系统。

从 Canonical 合作伙伴镜像网站下载用于 Windows 的最新的 Ubuntu 容器镜像。下载后,使用 XZ 工具解压,解压之后就可以用了,大家就可以开始技术研发等工作了。

win10怎样将运行docker显示在状态栏小图标

下载Docker CE for Windows的客户端

2

在弹出的保存对话框中点击保存按钮

3

下载完成后,双击Docker for Windows Installer.exe安装包

4

等待解包安装

5

如下图所示提示,说明安装成功,点击close按钮

在桌面上可以看到docker的鲸鱼图标,双击图标启动

等待一会,出现需要开启Hyper-V的提示,我们需要开启win10的Hyper-V支持

右键点击开始图标,选择应用和功能选项

在应用和功能窗口中,选择程序和功能

在程序和功能窗口中,点击启用和关闭Windows功能

勾选Hyper-V,点击确定按钮

Hyper-V正在安装,稍等片刻

windows完成更改后,需要重启系统,点击立即重新启动

再次双击桌面图标运行docker启动服务,如下图所示再桌面右下角出现docker的鲸鱼图标并没有报错的情况说明服务启动成功

打开cmd命令行窗口,输入docker info 可以查看到docker的基本信息,安装成功

  • 本文相关:
  • phpstorm 如何优雅的调试hyperf的方法步骤
  • docker machine是什么?
  • 谷歌技术人员解决docker镜像体积太大问题的方法
  • centos修改docker网络配置方法分享
  • 谈谈我对docker的理解
  • docker swarm入门实例详解
  • 常用的docker基本命令及用法汇总
  • 浅谈docker 客户端和守护进程
  • docker使用的个人学习总结
  • 详解在docker容器内外互相拷贝数据的方法
  • ubuntu docker搭建hadoop集群环境的方法
  • 如何使用docker来制作我现在正在使用的系统的镜像
  • docker linux 用哪个
  • 怎么使用Docker搭建PHP开发环境
  • 如何在 Windows 上运行 Linux 容器
  • win10怎样将运行docker显示在状态栏小图标
  • 在windows10上使用docker哪些坑
  • docker和docker应用程序的区别
  • 如何使用docker中的php环境来调试代码
  • 如何开发一个 PHP + MySQL 的 Docker 化应用
  • Dockerfile 中的Volume有什么意义,光用docker run
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved