首页 » Web前端 » phpisimage技巧_dockercompose 经由进程image指令搭建LNMP

phpisimage技巧_dockercompose 经由进程image指令搭建LNMP

duote123 2024-11-19 0

扫一扫用手机浏览

文章目录 [+]

本次先直接指定镜像来搭建一个大略LNMP,作为学习docker-compose入门

实际操作一定是须要 Dockerfile 来配置,才能知足自己的个性化需求

phpisimage技巧_dockercompose 经由进程image指令搭建LNMP

环境:

visualbox ubuntu 1804 本地删除了 mysql

phpisimage技巧_dockercompose 经由进程image指令搭建LNMP
(图片来自网络侵删)
1、 安装 docker-compose

官网https://docs.docker.com/compose/一个不错的入门网站https://docker_practice.gitee.io/compose/compose_file.html

预先设置一下阿里云 Docker 加速再次抄录一下,省得每次都忘却,每次都去查找 下文中 https://2xxxxxxx.mirror.aliyuncs.com 是我申请后的专属加速器地址,记得换本钱身的地址 1. 安装/升级Docker客户端 推举安装1.10.0以上版本的Docker客户端,参考文档 docker-ce 2. 配置镜像加速器 针对Docker客户端版今年夜于 1.10.0 的用户 您可以通过修正daemon配置文件/etc/docker/daemon.json来利用加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://2xxxxxxx.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 123456789101112131415截图如下:安装 docker-compose按照官网操作 sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 1实在太慢!
以是,又去找了一下海内镜像海内镜像参考文章https://blog.csdn.net/huiyanghu/article/details/82253886

按照以上参考文章抄过来

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose1

果真秒达!
接下来设置可运行

chmod +x /usr/local/bin/docker-compose1

确认一下:

$docker-compose --versiondocker-compose version 1.24.0, build 0aa590642、考试测验建立第一个项目:LNMP单独建立一个 compose 学习的目录mkdir compose && cd composemkdir lnmp1 && cd lnmp1建立一个 mysql 数据存放目录,一个 nginx/php 存放目录mkdir mysqlmkdir nginx && cd nginx按照 nginx 网站习气,建立一个conf.d 目录和一个 www 目录在 www/html 下预先写好一个 index.php 多此一举的在前面加了几句话只是为了确认起来方便!
<h3> wellcome WZH! <h4> this is a docker demo <h5> 20190416 <p>==================</p> <?php phpinfo(); ?> 12345678终极目录构造如下$ tree lnmp -dlnmp├── mysql│ └── data│ ├── mysql│ ├── performance_schema│ └── sys└── nginx├── conf.d└── www└── html3、开始编写模版参考:https://www.jianshu.com/p/7fff488604c1https://www.cnblogs.com/blogscc/p/9473123.html预先确认一下端口占用情形ss -tlnp |grep 3306LISTEN 0 80 127.0.0.1:3306 0.0.0.0:

ss -tlnp |grep 80LISTEN 0 80 127.0.0.1:3306 0.0.0.0: LISTEN 0 128 :80 :

我的 3306 和 80 端口都已经被占用,以是,以下脚本中宿主机端口换成了 3307 和 81

分别测试 nginx、php、mysql 镜像和容器运行编写模版文件 docker-compose.yml$ cat docker-compose.yml version: "3" services: web_server: image: nginx:latest container_name: nginx links: - php:php ports: - "81:80" - "443:443" volumes: - ./nginx/www/html:/var/www/html - ./nginx/conf.d:/etc/nginx/conf.d db_server: image: mysql:5.7.21 container_name: mysql environment: MYSQL_ROOT_PASSWORD: 123456 ports: - "3307:3306" volumes: - ./mysql/data:/var/lib/mysql php: image: php:5.6-fpm container_name: php links: - db_server:mysql ports: - "9000:9000" volumes: - ./nginx/www/html:/var/www/html - ./nginx/conf.d:/etc/nginx/conf.d 12345678910111213141516171819202122232425262728293031323334运行测试在当前目录下$ docker-compose up -dmysql is up-to-datephp is up-to-datenginx is up-to-date 如果修正了 docker-compose.yml,再次启动之前先停滞$ docker-compose downStopping nginx … doneStopping php … doneStopping mysql … doneRemoving nginx … doneRemoving php … doneRemoving mysql … done确认容器是否启动$ docker ps -s CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE 6bb7eb2c7665 nginx:latest "nginx -g 'daemon of…" About an hour ago Up About an hour 0.0.0.0:443->443/tcp, 0.0.0.0:81->80/tcp nginx 2B (virtual 109MB) 47f3ed37ac21 php:5.6-fpm "docker-php-entrypoi…" About an hour ago Up About an hour 0.0.0.0:9000->9000/tcp php 0B (virtual 344MB) 41d22b0b79f0 mysql:5.7.21 "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:3307->3306/tcp mysql 1234curl 127.0.0.1:81

浏览器打开http://192.168.1.193:81/

4、缺点处理curl 127.0.0.1:81/index.php 总是 404 Not Found由于 conf.d 的 default.conf 抄过来的是实际环境,php解析fastcgi_pass 127.0.0.1:9000;现在须要换成 php容器名fastcgi_pass php:9000;docker ps -s 查看时, nginx 容器总是没有启动换成 php容器名没有写精确

以下是从参考文章抄过来修正后的 default.conf

server { listen 80; server_name localhost; location / { root /var/www/html; index index.html index.htm index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/html; } location ~ \.php$ { root /var/www/html; # fastcgi_pass 127.0.0.1:9000; # 必须修正为compose模版文件中php容器名字 fastcgi_pass php:9000 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 修正为$document_root include fastcgi_params; }}

标签:

相关文章

QQ伪装黑客代码大全技术与风险警示

网络安全问题日益凸显。QQ作为一种流行的社交工具,成为了黑客攻击的主要目标之一。本文将针对QQ伪装黑客代码大全进行深入剖析,揭示其...

Web前端 2025-03-02 阅读1 评论0