1. 文章
  2. 文章详情

使用docker安装PHP语言开发环境

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

Docker
面向对象
容器
对象
镜像

Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。

Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。

先看Dockerfile:

# 使用基于alpine linux 的镜像,体积小,下载快 
FROM php:7.0-cli-alpine  
# 使用中科大的源加快下载速度 
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories  
# 安装下基本的php扩展 
RUN docker-php-ext-install pdo pdo_mysql mysqli

构建

docker build -t heropoo/php-cli-alpine . 
#先切换到你的Dockerfile目录

运行

docker run -it --rm --name php-cli-server -p 8080:80  -v //c/Users/ttt/www:/usr/src/www -w /usr/src/www php:7.0-cli-alpine php -S 0.0.0.0:80

解释下各个参数:

-t在新容器内指定一个伪终端或终端
-i 允许你对容器内的标准输入 (STDIN)
-p 映射宿主机端口到容器的端口,上面就是宿主机的8080到容器的80
-v 挂载宿主机目录到容器的目录,上面就是宿主机/c/Users/ttt/www到容器/usr/src/www
-w 设置工作目录
–rm 容器运行完之后删除
–name 给容器名字
php -S 0.0.0.0:80 就是用php内置的服务器启动一个web服务了,简单点来 哈哈

我系统是windows,我在浏览器访问docker的web服务:http://ip:8080,ip是你的docker的ip,就可以了。

参考:使用docker玩转php开发环境​www.ioio.pw

发表评论

登录后才能评论

评论列表(0条)