docker Compose 部署nginx+php

一,初始化环境(已安装docker  有nginx镜像的跳过)

 docker部署nginx-从0开始  

docker pull nginx

docker 安装php dockerfile 非fpm模式 需修改Dockerfile内容 如下

FROM php:7.3-fpm
WORKDIR /var/www/html

创建镜像

docker build -t php-fpm .

nginx PHP 镜像都有了,现在通过服务编排部署

操作如下,删除所有容器

docker Compose 部署nginx+php_第1张图片

docker stop $(docker ps -aq)
docker rm $(docker ps -aq)

二,安装docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

提示 -bash: /usr/local/bin/docker-compose: Permission denied ,切换root执行

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

三,docker-compose.yml 编写

宿主机 /var/soft/compose 下

version 版本要匹配 ,查看对应版本号

查看nginx 、php 官网镜像Dockerfile 得知 nginx php 相关配置文件 根目录 日志 等位置。编排文件如下:

version: "3.3"
services:
  nginx:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      -  /var/www/html:/usr/share/nginx/html:rw
      - ./conf/nginx:/etc/nginx/conf.d:rw
      - ./conf/nginx.conf:/etc/nginx/nginx.conf:rw
      - ./log/nginx:/var/log/nginx:rw
    stdin_open: true
    tty: true
    privileged: true
    
  php73:
    image: php-fpm
    expose:
      - "9000"
    ports:
      - "9000:9000"
    volumes:
      -  /var/www/php:/var/www/html:rw
      - ./conf/php/php.ini:/usr/local/etc/php/php.ini:ro
      - ./conf/php/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf:rw
      - ./log/php:/var/log/dnmp:rw
    stdin_open: true
    tty: true
    privileged: true

备注

编排文件 宿主机没有的文件夹 或者文件 需手动创建 ,如下 copy 容器文件到宿主机(我是 先docker run容器启动 然后copy的,不知道有没有其他快捷方式  )

宿主机 /var/soft/compose/conf/php 下执行(my-php-c 为容器名)

docker cp  my-php-c:/usr/local/etc/php/php.ini-development  ./
cp php.ini-development php.ini

注意:nginx,php 配置文件 稍微配置一下 log地址 对应上docker-compose.yml 共享目录

nginx配置php如下

docker Compose 部署nginx+php_第2张图片


docker-compose up
docker-compose restart

docker Compose 部署nginx+php_第3张图片

 

四,遇到的问题

1,版本号不对 根据提示由3.6 改为3.3

2,文件夹忘记创建,自己检查创建相应文件夹

3,配置文件未创建,创建了容器 访问失败,查看容器log,发现确少配置

docker-compose logs b535d45ac979

4,调试运行的命令

 docker-compose --help

docker-compose up
docker-compose down
docker-compose logs 容器名
docker-compose ps
docker-compose rm

进入容器

docker exec -it 146521f52206 /bin/bash

你可能感兴趣的:(阿里云环境搭建)