安装 PHP 镜像

方法一、docker pull php

查找 Docker Hub 上的 php 镜像:

可以通过 Sort by 查看其他版本的 php,默认是最新版本 php:latest

此外,我们还可以用 docker search php 命令来查看可用版本:

runoob@runoob:~/php-fpm$ docker search php
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
php                       While designed for web development, the PH...   1232      [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   207                  [OK]
phpmyadmin/phpmyadmin     A web interface for MySQL and MariaDB.          123                  [OK]
eboraas/apache-php        PHP5 on Apache (with SSL support), built o...   69                   [OK]
php-zendserver            Zend Server - the integrated PHP applicati...   69        [OK]
million12/nginx-php       Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...   67                   [OK]
webdevops/php-nginx       Nginx with PHP-FPM                              39                   [OK]
webdevops/php-apache      Apache with PHP-FPM (based on webdevops/php)    14                   [OK]
phpunit/phpunit           PHPUnit is a programmer-oriented testing f...   14                   [OK]
tetraweb/php              PHP 5.3, 5.4, 5.5, 5.6, 7.0 for CI and run...   12                   [OK]
webdevops/php             PHP (FPM and CLI) service container             10                   [OK]
...

这里我们拉取官方的镜像,标签为5.6-fpm

runoob@runoob:~/php-fpm$ docker pull php:5.6-fpm

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为5.6-fpm的镜像。

runoob@runoob:~/php-fpm$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
php                 5.6-fpm             025041cd3aa5        6 days ago          456.3 MB

Nginx + PHP 部署

Nginx 部署可以查看:Docker 安装 Nginx,一些 Nginx 的配置参考这篇文章。

启动 PHP:

$ docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm

命令说明:

  • --name myphp-fpm : 将容器命名为 myphp-fpm。

  • -v ~/nginx/www:/www : 将主机中项目的目录 www 挂载到容器的 /www

创建 ~/nginx/conf/conf.d 目录:

mkdir ~/nginx/conf/conf.d 

在该目录下添加 ~/nginx/conf/conf.d/runoob-test-php.conf 文件,内容如下:

server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm index.php;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}location ~ \.php$ {fastcgi_pass   php:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;include        fastcgi_params;}
}

配置文件说明:

  • php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。
  • /www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。

启动 nginx:

docker run --name runoob-php-nginx -p 8083:80 -d \-v ~/nginx/www:/usr/share/nginx/html:ro \-v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \--link myphp-fpm:php \nginx
  • -p 8083:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。
  • ~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
  • ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
  • --link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

接下来我们在 ~/nginx/www 目录下创建 index.php,代码如下:

<?php
echo phpinfo();
?>

浏览器打开 http://127.0.0.1:8083/index.php,显示如下:

Docker 安装 Node.js

Docker 安装 MySQL

1 篇笔记 写笔记

  1. pengqiangsheng

    294***2136@qq.com

    参考地址

    35

    Docker 配置 nginx、php-fpm、mysql

    运行环境

    创建目录

    mkdir -p /Users/sui/docker/nginx/conf.d && mkdir /Users/sui/www &&  cd /Users/sui/docker/nginx/conf.d && sudo touch default.conf

    启动 php-fpm

    解释执行 php 需要 php-fpm,先让它运行起来:

    docker run --name sui-php -d \-v /Users/sui/www:/var/www/html:ro \php:7.1-fpm

    --name sui-php 是容器的名字。

    /Users/sui/www 是本地 php 文件的存储目录,/var/www/html 是容器内 php 文件的存储目录,ro 表示只读。

    编辑 nginx 配置文件

    配置文件位置:/Users/sui/docker/nginx/conf.d/default.conf。

    server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}location ~ \.php$ {fastcgi_pass   php:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;include        fastcgi_params;}
    }

    说明:

    • php:9000 表示 php-fpm 服务的访问路径,下文还会提及。
    • /var/www/html 是 sui-php 中 php 文件的存储路径,经 docker 映射,变成本地路径 /Users/sui/www(可以再看一眼 php-fpm 启动命令

    启动 nginx:

    docker run --name sui-nginx -p 80:80 -d \-v /Users/sui/www:/usr/share/nginx/html:ro \-v /Users/sui/docker/nginx/conf.d:/etc/nginx/conf.d:ro \--link sui-php:php \nginx
    • -p 80:80 用于添加端口映射,把 sui-nginx 中的 80 端口暴露出来。
    • /Users/sui/www 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
    • /Users/sui/docker/nginx/conf.d 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
    • --link sui-php:php 把 sui-php 的网络并入 sui-nginx,并通过修改 sui-nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

    测试结果

    在 /Users/sui/www 下放两个文件:index.html index.php

    mysql 和 phpmyadmin

    mysql 服务器

    sudo mkdir -p /Users/sui/docker/mysql/data /Users/sui/docker/mysql/logs /Users/sui/docker/mysql/conf
    • data 目录将映射为 mysql 容器配置的数据文件存放路径
    • logs 目录将映射为 mysql 容器的日志目录
    • conf 目录里的配置文件将映射为 mysql 容器的配置文件
    docker run -p 3307:3306 --name sui-mysql -v /Users/sui/docker/mysql/conf:/etc/mysql -v /Users/sui/docker/mysql/logs:/logs -v /Users/sui/docker/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d --link sui-php mysql

    进入mysql客户端:

    docker run -it --link sui-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

    注意:我本地 3306 端口有 mysql, 所以这里用3307端口。

    phpmyadmin

    docker run --name sui-myadmin -d --link sui-mysql:db -p 8080:80 phpmyadmin/phpmyadmin

    大功告成:

Docker 安装 PHP相关推荐

  1. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  2. etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)

    1. 使用 apt 或 yum 安装 etcd 命令如下: sudo apt-get install etcd 或者 sudo yum install etcd 这样安装的缺点是:安装的 etcd 版 ...

  3. docker安装Mysql5.7以及远程登陆链接配置

    1.安装mysql5.7 docker镜像 docker安装:docker安装一条龙 1.拉取官方mysql5.7镜像 docker pull mysql:5.7 root@VM-12-5-ubunt ...

  4. docker 安装oracle_阿里云使用Docker搭建Hadoop集群

    摘要 吐血整理,搭建了两遍,亲测可用!!! 我买的是阿里云2C4G的服务器,使用的是CentOS 7.7版本.在搭建过程中踩了不少坑,本篇文章希望对大家有用 CentOS 7.7安装Docker 查看 ...

  5. docker 安装和使用

    目录 1.安装docker的官方网站 配置镜像加速器 查看docker安装的版本 重启docker 启动 docker 查看启动的状态 下载测试镜像 并且启动该容器 2.操作docker 镜像的常用命 ...

  6. docker 安装 oracle12,使用Docker安装Oracle 12c

    使用Docker安装Oracle 12c 假设你的服务器已成功安装Docker,继续进行以下操作: 1. 启动Docker [root@node01 ~]# service docker start ...

  7. Centos-安装Docker并使用Docker安装mysql遇到的问题以及解决方法

    为什么安装Docker?? ----不知道啊,说是用其安装mysql简单 step1:    首先百度,查找安装的教程,哎,找到了: 如下: https://www.jianshu.com/p/9c9 ...

  8. 002.Docker安装部署

    一 docker安装-CentOS系统 1.1 docker自动安装脚本 1 root@docker:~# wget -qO- https://get.docker.com/ | sh 2 或-- 3 ...

  9. Linux磁盘挂载和docker安装

    本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录. 最近新申 ...

  10. Docker学习(一)Ubuntu版本的Docker安装和使用

    2019独角兽企业重金招聘Python工程师标准>>> Docker安装: [apt-get install docker.io   如果不成功先运行 apt-get update] ...

最新文章

  1. 制作网站设计项目进度表让用户充分了解网站制作进程
  2. python全套视频教程下载-老男孩python全套视频教程百度云资源下载
  3. mmTrix大数据分析平台构建实录--转
  4. javaweb学习总结(二十八)——JSTL标签库之核心标签
  5. 快充线与普通线的区别_四种不同线身材质对比:iPhone12首次标配编织线或将引领潮流?...
  6. AUTOCAD参数约束功能
  7. 字节跳动拒招33岁程序员,网友:这也太坑了!太不合理!
  8. c语言指数公式_c语言指数函数详解
  9. 浩方对战平台原理分析
  10. ipa安装手机失败的几类原因
  11. Watching the English:英国社会阶层攀爬指南?
  12. ai怎么做波普风圆点_如何用Ps或Ai制作出波普艺术风格的海报?
  13. C语言实现格林威治时间转北京时间+根据日期计算星期几
  14. Catalan数的分析和应用
  15. 深入理解计算机系统(2.8)---浮点数的舍入,Java中的舍入例子以及浮点数运算(重要)
  16. uml中的关系-类图关系
  17. Android MVP模式介绍和讲解
  18. 销售易CEO 史彦泽:特殊时期,企业如何维持销售运转?
  19. nc 调用后台接口 生成单据编码单据编号
  20. python随机生成10个奇数_python怎么随机生成奇数

热门文章

  1. JAVA 定时任务Corn的对象设计和corn字符串转换
  2. 传输线 模型 B 和电阻
  3. 通过 ChatGPT 制作一个短视频
  4. 加载ControlCAN.dll [WinError 14001] 应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具。
  5. 2019年十大物联网传感器
  6. 游戏开发-unity 游戏性能优化
  7. RHCSA——Linux文件以及用户与组的管理
  8. java 自动退出_java程序自动退出
  9. $children与$parent
  10. Unity小游戏——武士打怪兽资源