前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[实战]docker-compose搭建基本的nginx+php环境

[实战]docker-compose搭建基本的nginx+php环境

作者头像
宣言言言
发布2019-12-17 15:33:54
2.6K0
发布2019-12-17 15:33:54
举报
文章被收录于专栏:宣言(Siam)博客宣言(Siam)博客

安装docker-compose

简单说几句,具体可以参照官网的详细教程。

  • 确保已经安装docker
  • 从github拉取docker-compose 
代码语言:javascript
复制
# curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • 添加可执行权限
代码语言:javascript
复制
# chmod +x /usr/local/bin/docker-compose
  • 运行docker-compose
代码语言:javascript
复制
# docker-compose --version
docker-compose version 1.22.0, build 1719ceb

docker-compose基本使用

docker-compose使用后缀为yml的文件定义你的服务容器关系

下面我们用一个nginx+php的简单例子来演示

创建项目总目录

代码语言:javascript
复制
$ mkdir work && cd work

创建代码存放目录

代码语言:javascript
复制
$ mkdir app

创建配置存放目录

代码语言:javascript
复制
$ mkdir config && cd config

创建nginx配置文件

代码语言:javascript
复制
$ vim site.conf

写入你需要的nginx服务器配置,我这里写的是

代码语言:javascript
复制
server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /home/wwwroot/;


    location ~ .php {
        # try_files $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
    }
}

开始编写docker-compose的yml文件

代码语言:javascript
复制
$ vim docker-compose.yml

我已经写了简单的注释,其他的可选项可以在官网或者其他教程学习,这里只是演示最基本的搭建。

代码语言:javascript
复制
version: '2'

services:
    web:
        # 使用镜像
        image: nginx:latest
        # 端口映射
        ports:
            - "80:80"
        # 目录挂载
        volumes:
            - ./app:/home/wwwroot/
            - ./config/nginx/site.conf:/etc/nginx/conf.d/default.conf
        # 网络
        networks:
            - code-network
    php:
        image: php:7.0-fpm
        volumes:
            - ./app:/home/wwwroot/
        networks:
            - code-network

networks:
    code-network:
        driver: bridge

开始构建

代码语言:javascript
复制
$ docker-compose up -d
Starting work_web_1 ... done
Starting work_php_1 ... done

打开你网址 查看是否nginx是否运行成功 (这里应该会提示nginx 403,没有则可能不正常)

接着进入代码存放目录,编写第一个php文件

代码语言:javascript
复制
$ cd app 
$ vim index.php
代码语言:javascript
复制
<?php
phpinfo();

刷新网址,

我已经运行成功了,那你呢?

最终的文件目录结构如下

代码语言:javascript
复制
work 总目录
├── app  代码存放目录
│   └── index.php
├── config 配置存放目录
│   └── nginx
│       └── site.conf
└── docker-compose.yml

docker-compose的其他几个常用指令

==========================

进入你的项目目录 则运行以下其他命令

查看容器运行状态

代码语言:javascript
复制
$docker-compose ps

停止该项目运行

代码语言:javascript
复制
$docker-compose stop

关于为什么要使用docker和docker-compose将在下一章进行讨论!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.08.30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装docker-compose
  • docker-compose基本使用
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档