docker-compose搭建nginx+php環境


docker-compose搭建nginx+php環境

准備工作

docker-compose的下載安裝:

https://www.runoob.com/docker/docker-compose.html

創建工作目錄和需要掛載的目錄:

# 工作目錄(一會兒docker-compose命令將在工作目錄下執行)
mkdir -p /disk2/docker/docker-compose
# 需要掛載的目錄
mkdir -p /disk2/www
mkdir -p /disk2/nginx/log
mkdir -p /disk2/nginx/conf.d

# 進入工作目錄
cd /disk2/docker/docker-compose

添加nginx配置:

vim /disk2/nginx/conf.d/detault.conf 

把下面配置放到default.conf

server {
    listen  80 default_server;
    server_name  localhost;

    root  /usr/share/nginx/html;
    location / {
        index index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

編寫docker-compose.yml文件

創建docker-compose.yml

vim /disk2/docker/docker-compose/docker-compose.yml

先上yml文件, 然后再說明作用

version: "3"
services:
    nginx:
        image: nginx:latest
        container_name: "compose-nginx"
        restart: always
        ports:
            - "80:80"
            - "443:443"
        environment:
           - TZ=Asia/Shanghai
        depends_on:
           - "php"
        volumes:
           - "/disk2/nginx/conf.d:/etc/nginx/conf.d"
           - "/disk2/www:/usr/share/nginx/html"
           - "/disk2/nginx/log:/var/log/nginx"
        networks:
           - net-app
    php:
        image: php:7.4-fpm
        container_name: "compose-php"
        restart: always
        ports:
            - "9000:9000"
        environment:
            - TZ=Asia/Shanghai
        volumes:
            - "/disk2/www:/usr/share/nginx/html"
        networks:
           - net-app

networks:
    net-app:  
version: 指定compose版本, 目前主流版本3.x,支持docker1.13.0及以上的版本
services: 定義服務信息
nginx和php: 用戶自定義,表示服務名稱
image: 鏡像
container_name: 容器名稱
restart: 定義重啟策略
    no:是默認的重啟策略,在任何情況下都不會重啟容器。
    always:容器總是重新啟動。
    on-failure:在容器非正常退出時(退出狀態非0),才會重啟容器。
   unless-stopped:在容器退出時總是重啟容器,但是不考慮在Docker守護進程啟動時就已經停止了的容器
ports: 設置宿主機和容器之間的端口映射關系
environment: 設置環境變量(TZ=Asia/Shanghai:設置時區)
volumes: 數據卷,定義映射關系,將目錄或文件掛載到容器
networks: 定義網絡信息,詳細的可以去這里看看https://deepzz.com/post/docker-compose-file.html#toc_31
depends_on: 設置依賴關系,可以讓docker-compose按依賴關系啟動

執行docker-compose

docker-compose up -d

運行命令后鏡像下載了,但是卻出現了些問題(沒有問題的跳過該部分)

?出現端口占用

解決:利用下面命令找出端口,停止或kill

netstat -tunlp|grep 端口

? 掛載目錄或文件出現問題
解決: 檢查目錄或文件是否存在

修改配置文件后,重啟容器

docker-compose up -d --force-recreate

啟動成功:

現在來試試:

vim /disk2/www/index.php

在文件添加一下內容

<?php phpinfo();

可以正常訪問:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM