实战 - 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将在下一章进行讨论!

目录
相关文章
|
7天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
15天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
27天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
28 0
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
213 0
|
1月前
|
Unix Docker 容器
【超强图解Docker常见命令与实战】
【超强图解Docker常见命令与实战】
51 0
|
2月前
|
Java Linux Docker
Docker入门到实战
Docker入门到实战、Centos7安装Docker
|
2月前
|
Cloud Native Go 数据安全/隐私保护
自定义Docker镜像推送到Docker Hub实战
自定义Docker镜像推送到Docker Hub实战
82 2
自定义Docker镜像推送到Docker Hub实战
|
2月前
|
KVM 虚拟化 Android开发
DP读书:鲲鹏处理器 架构与编程(十二)鲲鹏软件实战案例Docker+KVM的部署
DP读书:鲲鹏处理器 架构与编程(十二)鲲鹏软件实战案例Docker+KVM的部署
54 1
|
2月前
|
Ubuntu 应用服务中间件 nginx
ubuntu环境下 nginx 怎么配置文件
ubuntu环境下 nginx 怎么配置文件
|
3月前
|
Linux Docker Python
Python实战技术 - Python虚拟隔离环境 和 Docker技术
Python实战技术 - Python虚拟隔离环境 和 Docker技术
204 0