一,初始化环境(已安装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 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 up
docker-compose restart
四,遇到的问题
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