网站首页 > 技术教程 正文
想必作为一个web开发的程序员,近些年对docker技术一定不会陌生,docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
使用docker主要有以下好处:
1. docker容器之间相互独立,可以在一个服务器上面搭建多套环境。
2. docker容器内有已经部署好的软件安装环境,搭建集成环境相当方便。
本文就按照docker标准,搭建一个基于LAMP架构的PHP运行环境(MySQL、Nginx、PHP_FPM)。
安装docker
1. 安装docker,使用如下命令。
yum install docker
2. 查看docker版本,检测是否安装成功。
docker --version
3. 设置docker加速镜像源,通过
vim /etc/docker/daemon.json设置如下内容。
{
"registry-mirrors":["http://hub-mirror.c.163.com"]
}
docker安装MySQL
1. 从docker镜像库中拉取一个MySQL的镜像到服务器。
docker pull mysql:5.6
2. 然后输入命令 docker images 就可以查看查看我们刚刚拉下来的mysql的镜像。
3. 运行并启动一个容器,通过以下命令。
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456abc --name mysql_1 mysql:5.6
参数说明:
-d 让容器在后台运行。
-p 添加主机到容器的端口映射。
3306:3306 把容器内的3306端口映射到主机的3306端口,前面是主机的端口,后面是容器端口。
-e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置。
-MYSQL_ROOT_PASSWORD 设置访问MySQL的密码为123456abc。
–name 容器的名字,随便取,但是必须唯一。
4. 接下来我们就可以通过命令docker ps -a 查看我们刚刚创建的容器。
这里我们可以看到我的容器状态的Up状态,表示容器正在运行,并且把可以看到主机和容器的端口映射关系,如果容器启动情况不正确,可以查看日志,通过以下命令命令。
docker logs -f -t --since="2018-09-20" --tail=10 mysql_1
接下来,如果我们想进入刚刚创建的容器中,输入如下命令。
附加:进入容器
docker exec -ti mysql_1 /bin/bash1
参数说明 :
-t 在容器里生产一个伪终端。
-i 对容器内的标准输入 (STDIN) 进行交互。
容器中默认是没有vim的,所以我们首先要安装vim,需要注意的是安装前记得先执行apt update命令,不然安装会出现问题。
进入到mysql容器后,我们通过创建一个远程可以访问的用户,这样我们就能从别的主机访问到我们的数据库了。
Docker安装PHP-FPM
1. 拉取php-fpm的镜像。
docker pull php:7.0-fpm
2. 再创建一个php-fpm容器,开启端口为9000,同时与上面安装的mysql进行连接,才能够协同工作。
docker run -d -v /var/nginx/www/html:/usr/share/nginx/html -p 9000:9000 --link mysql_1:mysql --name abc_phpfpm php:7.0-fpm
参数说明:
-d 让容器在后台运行。
-p 添加主机到容器的端口映射。
-v 添加目录映射,即主机上的。
/var/nginx/www/html和容器中/var/www/html目录是同步的。
–name 容器的名字。
–link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务。
备注:这里如果不指定–link参数其实也是可以得,因为容易本身也是有ip的且唯一,所以我们也可以直接利用ip去访问容器。
安装PDO扩展
#进入容器
docker exec -it phpfpm_1 /bin/bash
#安装pdo
docker-php-ext-install pdo_mysql
#查看pdo是否安装成功
php -m
安装Redis扩展,依次执行如下命令
#下载资源包
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz
#解压资源包
tar xfz /tmp/redis.tar.gz rm -r /tmp/redis.tar.gz mkdir -p /usr/src/php/ext mv phpredis-3.1.3 /usr/src/php/ext/redis
#安装扩展
docker-php-ext-install redis
docker安装nginx
1. 首先,从仓库里去拉取一个nginx镜像。
docker pull nginx:1.10.3
2. 接下来运行nginx容器。
docker run -d -p 80:80 -p 443:443 -v /var/nginx/www/html:/usr/share/nginx/html --link phpfpm_1:phpfpm --name nginx_1 nginx:1.10.3
3. 配置nginx配置文件default.conf,在配置文件中增加以下行。
location ~ .+\.php($|/) {
set $script $uri;
set $path_info "";
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}
root /usr/share/nginx/html;
fastcgi_pass phpfpm:9000;
fastcgi_index index.php?IF_REWRITE=1;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $script;
include fastcgi_params;
}
最后,在/var/nginx/www/html目录下面新建一个index.php文件看看能不能访问呢?今天的内容就给大家讲解到这里,有什么问题的欢迎下方留言哟!
每天进步一点点,更多精彩内容,欢迎关注公众号“编程社”!!!
猜你喜欢
- 2024-10-07 2077年了,PHP语言现在怎么样啦?(php语言为什么走下坡路了)
- 2024-10-07 DevOps实例之使用GitLab CI进行Laravel应用程序的测试和部署
- 2024-10-07 PHP爬虫编写(php网络爬虫)
- 2024-10-07 PHP学习之旅-启程篇:PHP究竟是什么?
- 2024-10-07 小白爱折腾·其四:Linux部署Lnmp+PHPMyadmin环境
- 2024-10-07 记一次因PHP的配置文件(php.ini)引发的小插曲
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
-
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)