常用镜像

1. lamp

linode/lamp

2. 0x01 php

php 官方源

2.1. php:5.6-apache

github Dockerfile

Dockerfile: FROM php:5.6-apache, FROM daocloud.io/php:5.6-apache(国内)

默认 DOCUMENT_ROOT: /var/www/html

3. 0x02 mysql

mysql 官方源

3.1. 简单使用

默认在 3306 端口启动数据库, MySQL 初始化完成前无法连接

  • 运行 mysql 实例
$ sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql
  • 其它应用来连接到 mysql 容器。
$ sudo docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql
  • 从 mysql 命令行客户端连接 mysql 容器
$ sudo docker run -it --link some-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"'

3.2. LAMP with mysql

FROM php:5.6-apache

RUN docker-php-ext-install mysql

3.3. LAMP with pdo_mysql

github demo pdo_mysql

php 安装 pdo_mysql 扩展

FROM php:5.6-apache

# docker-php-ext-install 为官方 PHP 镜像内置命令,用于安装 PHP 扩展依赖
# pdo_mysql 为 PHP 连接 MySQL 扩展
RUN docker-php-ext-install pdo_mysql (pdo: php data objects)

php 应用程序代码访问数据库

<?php
$serverName =   env("MYSQL_PORT_3306_TCP_ADDR", "localhost");
$databaseName = env("MYSQL_INSTANCE_NAME", "homestead");
$username =     env("MYSQL_USERNAME", "homestead");
$password =     env("MYSQL_PASSWORD", "secret");

/**
 * 获取环境变量
 * @param $key
 * @param null $default
 * @return null|string
 */
function env($key, $default = null)  
{
    $value = getenv($key);
    if ($value === false) {
        return $default;
    }
    return $value;
}

?>

results matching ""

    No results matching ""