使用compose構建Docker多容器應用(Nginx+PHP+MySQL+Redis)


首先安裝compose

#下載並移動到/usr/local/bin目錄下
curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
#賦予可執行權限
chmod +x /usr/local/bin/docker-compose

然后執行docker-compose --version 如果能看顯示對應的版本號說明安裝成功

再一個空目錄下創建nginx 和php兩個目錄,首先進入nginx目錄並創建一個Dockerfile文件

cd nginx
vi Dockerfile

在Dockerfile文件中寫入如下指令

FROM nginx:latest
COPY default.conf /etc/nginx/conf.d/default.conf

保存Dockerfile文件后再創建一個default.conf內容為

#以下內容僅供參考,請按實際環境定制
server {
    listen       80;
    server_name  localhost;
    root   /usr/share/nginx/html;
    index  index.html index.htm index.php;
    location ~ \.php$ {
        fastcgi_pass   php-fpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

保存文件后再執行 cd ../php 進入php目錄 編輯Dockerfile文件(主要增加了一些常用擴展,請按實際情況定制) 內容如下

FROM php:7.3-fpm
RUN docker-php-ext-install pdo pdo_mysql mysqli \
&& pecl install redis-4.2.0 && docker-php-ext-enable redis

然后保存,cd .. 回到外層目錄創建docker-compose.yml文件

 vi docker-compose.yml 並鍵入如下內容

version: '3'
networks:
  dev-net:
    driver: bridge
services:
 mysql:
    image: mysql:latest
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
    networks:
     - dev-net
 nginx:
    build: nginx
    restart: always
    ports:
      - 80:80
    volumes:
    - /home/wwwroot/default/:/usr/share/nginx/html
    depends_on:
      - mysql
      - redis
      - php-fpm
    networks:
     - dev-net
 php-fpm:
    build: php
    volumes:
    - /home/wwwroot/default/:/usr/share/nginx/html
    networks:
     - dev-net
 redis:
    image: redis:latest
    networks:
     - dev-net

保存后執行

docker-compose up -d

等待完成自動構建即可


免責聲明!

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



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