安装docker
安装
1
2
3
4
5
6
7
81.下载yum源
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
2.修改baseurl地址
底行模式下:%s/https:\/\/download.docker.com\//https:\/\/mirrors.tuna.tsinghua.edu.cn\/docker-ce\//g
3.查看程序包
yum repolist
4.安装
yum install -y docker-ce配置
1
2
3
4
5
6
7
8
9
10配置文件:/etc/docker/daemon.json ,docker启动之前不存在可自行定义创建,启动之前就自动生成。
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
# 阿里云镜像
{
"registry-mirrors": ["https://6ucotgoh.mirror.aliyuncs.com"]
}
# systemctl daemon-reload
# systemcctl start docker
下载需要的镜像
1 | docker pull nginx:alpine |
相关部署
启动php
1
2
3
4docker run --name myphp -v /data/nginx/www:/www -d php:5.6-fpm
# --name myphp :将容器命名为 myphp
# -v /data/nginx/www:/www :将主机中项目的目录/data/nginx/www 挂载到容器的/www
# -d :后台运行添加nginx配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28# 创建 /data/nginx/conf/conf.d 目录:
mkdir -p /data/nginx/conf/conf.d
在/data/nginx/conf/conf.d/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 172.17.0.4:9000;
# 这里为php容器的ip
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
# fastcgi_pass :填写php器的ip,使用docker inspect myphp -f `{{.NetworkSettings.IPAddress}}`查看IP启动nginx
1
docker run --name mynginx -p 80:80 -d -v /data/nginx/www:/usr/share/nginx/html:ro -v /data/nginx/conf/conf.d:/etc/nginx/conf.d:ro --link myphp5.6:php nginx:alpine
测试php
1
2
3
4
5# 在/data/nginx/www目录下创建test-php.php,代码如下:
<?php
echo phpinfo();
?>
# 浏览器访问测试:IP/test-php.php启动mysql
1
docker run --name myMysql -P -e MYSQL_ROOT_PASSWORD=Xxzx@789 -d mysql
测试php连接mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<?php
$dbms='mysql'; //数据库类型
$host='172.17.0.2'; //数据库主机名,此处写mysql 容器的名字
$dbport = '3306';
$dbName='emlog'; //使用的数据库
$user='root'; //数据库连接用户名
$pass='X****'; //对应的密码
$dsn="$dbms:host=$host;port=$dbport;dbname=$dbName";
try {
$dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
echo "successful!<br/>";
//你还可以进行一次搜索操作
// foreach ($dbh->query('SELECT * from user') as $row) {
// print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
// }
$dbh = null;
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}docker容器安装vim等命令
1
2
3
4
5
6
7# 进入容器
docker exec -it 容器名 /bin/bash(或者/bin/sh)
# 查看容器的系统版本
cat /etc/issue
# 此处以ubuntu为例,先更新软件包,否则安装可能会提示Unable to locate package vim
apt-get update
apt-get install vimphp连接mysql报错:could not find driver
1
2
3
4
5
6
7
8
9
10# 默认官方php是没添加支持mysql,需自行安装配置
1、进入php容器
docker exec -it myphp /bin/bash
2、进入安装扩展目录下
whereis php # 查看在/usr/local/bin下
# 安装扩展 :docker-php-ext-install
./docker-php-ext-install pdo pdo_mysql
./docker-php-ext-install mysqli
3、查看php.ini
php --ini安装gd扩展:验证码要用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
151、进入php容器
docker exec -it myphp /bin/bash
2、安装依赖
apt-get install libpng-dev
3、进入安装扩展目录
./docker-php-ext-install -j$(nproc) gd
4、重启php容器,测试gd
<?
if(extension_loaded('gd')) {
echo '您可以使用gd<br>';
foreach(gd_info() as $cate=>$value)
echo "$cate: $value<br>";
} else
echo '没安装gd扩展!'
?>