本文共 2845 字,大约阅读时间需要 9 分钟。
作为一名Web开发程序员,Docker技术无疑是你必须掌握的核心技能之一。Docker是一个开源的应用容器引擎,允许开发者将应用程序及依赖打包为可移植的容器,便于在任何支持Linux的服务器上运行。容器采用沙箱机制,确保各容器之间完全隔离,不会互相影响。
接下来,我们将按照Docker标准,基于LAMP架构(Linux、Apache、MySQL、PHP/CGI、Perl/Python、Ruby)搭建一个PHP运行环境。
yum install docker
docker --version
daemon.json 文件:vim /etc/docker/daemon.json
添加镜像源:
{"registry-mirrors":["http://hub-mirror.c.163.com"]}拉取 MySQL 镜像
从镜像库下载 MySQL 5.6 版本:docker pull mysql:5.6
启动 MySQL 容器
创建并运行 MySQL 容器:docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456abc --name mysql_1 mysql:5.6
-d:让容器在后台运行。-p 3306:3306:将容器内的 MySQL 端口 3306 映射到主机的 3306 端口。-e MYSQL_ROOT_PASSWORD:设置 MySQL 根用户密码。查看容器状态
查看容器运行状态:docker ps -a
也可以查看容器日志:
docker logs -f --tail=10 mysql_1
进入 MySQL 容器
进入容器并配置用户:docker exec -ti mysql_1 /bin/bash
-t:创建一个伪终端。-i:允许交互式输入。docker pull php:7.0-fpm
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
-v:将主机目录 /var/nginx/www/html 与容器目录 /usr/share/nginx/html 同步。--link:与 MySQL 容器建立连接,确保 PHP-FPM 能够访问 MySQL。docker exec -it abc_phpfpm /bin/bash
docker-php-ext-install pdo_mysql
php -m
可能会显示 pdo_mysql 说明安装成功。
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz
tar xfz /tmp/redis.tar.gzrm -r /tmp/redis.tar.gzmkdir -p /usr/src/php/ext/mv phpredis-3.1.3 /usr/src/php/ext/redis
docker-php-ext-install redis
拉取 Nginx 镜像
下载 Nginx 1.10.3 版本:docker pull nginx:1.10.3
运行 Nginx 容器
创建并运行 Nginx 容器:docker run -d -p 80:80 -p 443:443 -v /var/nginx/www/html:/usr/share/nginx/html --link abc_phpfpm:phpfpm --name nginx_1 nginx:1.10.3
-p 80:80 和 -p 443:443:将 Nginx 的标准端口 80 和 443 映射到主机。--link:与 PHP-FPM 容器建立连接,确保 Nginx 能够正确反向代理请求。配置 Nginx
打开默认配置文件/etc/nginx/conf.d/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 文件,并访问服务器检查是否正常运行:curl http://localhost
通过以上步骤,你已经成功搭建了一个基于 Docker 的 LAMP 架构运行环境。如有问题,可以在评论区留言,我会尽力为你解答!
转载地址:http://mjtfk.baihongyu.com/