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

简介: docker-compose使用后缀为yml的文件定义你的服务容器关系 下面我们用一个nginx+php的简单例子来演示 创建项目总目录

安装docker-compose


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


  • 确保已经安装docker
  • 从github拉取docker-compose


 

# curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


  • 添加可执行权限


# chmod +x /usr/local/bin/docker-compose


  • 运行docker-compose


# docker-compose --version
docker-compose version 1.22.0, build 1719ceb


docker-compose基本使用


docker-compose使用后缀为yml的文件定义你的服务容器关系 下面我们用一个nginx+php的简单例子来演示 创建项目总目录


$ mkdir work && cd work


创建代码存放目录


$ mkdir app


创建配置存放目录


$ mkdir config && cd config


创建nginx配置文件


$ vim site.conf


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


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文件


$ vim docker-compose.yml


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


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


开始构建


$ docker-compose up -d
Starting work_web_1 ... done
Starting work_php_1 ... done


打开你网址 查看是否nginx是否运行成功 (这里应该会提示nginx 403,没有则可能不正常) 接着进入代码存放目录,编写第一个php文件


$ cd app 
$ vim index.php
<?php
phpinfo();


刷新网址


我已经运行成功了,那你呢? 最终的文件目录结构如下


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


docker-compose的其他几个常用指令 ========================== 进入你的项目目录 则运行以下其他命令 查看容器运行状态


$docker-compose ps


停止该项目运行


$docker-compose stop


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

Siam
+关注
目录
打赏
0
0
0
0
2
分享
相关文章
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
104 3
实战~如何组织一个多容器项目docker-compose
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
287 7
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
62 1
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
1400 1
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
161 0
深入探索容器化技术——Docker的实战应用
深入探索容器化技术——Docker的实战应用
63 0
Docker 的实战应用与优化策略
Docker 的实战应用与优化策略
56 0
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
80 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等