零基础使用docker搭建php+nginx环境
提示:本文记录使用docker搭建nginx+php环境,后面文档将记录连接redis/mysql目前 docker 创建容器方法比较多。有时间的话可以去了解一下:官方文档。我使用的是 文件格式的compose-file 来创建容器,个人感觉非常方便文章目录前言一、设置网络1.创建网络2.查看网络二、创建容器1.创建目录2.创建 yml 文件2.执行 yml 文件二、创建nginx容器1.创建目录
提示:本文记录使用
docker
搭建nginx
+php
环境,后面文档将记录连接redis
/mysql
目前 docker 创建容器方法比较多。有时间的话可以去了解一下:官方文档。我使用的是 文件格式的compose-file
来创建容器,个人感觉非常方便
文章目录
前言
提示:本文适合docker入门级别,超级适合新手:
接下里直接上代码
一、设置网络
1.创建网络
命令如下:
docker network inspect [网络名]
nginx-lss-net
是我创建的网络名
docker network inspect nginx-lss-net
2.查看网络
创建完成后使用命令查看
docker network ls
图片(示例)
二、创建容器
1.创建目录
先 cd ~
创建 mkdir docker
目录
cd docker
创建 mkdir expand
目录
图片(示例)
2.创建 yml 文件
提示:文件名称不可以改:
vim docker-compose.yml
代码(示例)
version: '3' #版本
services:
mysql: #mysql
container_name: mysql-5.7.22 #别名
image: mysql:5.7.22 #镜像名称 一般还是要带上版本号
network_mode: "nginx-lss-net" #网络
restart: always
environment:
MYSQL_USER: expand_mysql_admin # 创建新用户
MYSQL_PASSWORD: expand_mysql_admins # 新用户的密码
MYSQL_ROOT_PASSWORD: R349_&^#@e] # root用户的密码
TZ: Asia/Shanghai
volumes: #数据挂载到宿主机
- 绝对路径/docker/expand/local/mysql/data:/var/lib/mysql
- 绝对路径/docker/expand/local/mysql/conf:/etc/mysql
- 绝对路径/docker/expand/local/mysql/logs:/var/log/mysql
ports:
- 3306:3306 #端口
redis: #redis
image: redis:alpine
network_mode: "nginx-lss-net" #网络
container_name: redis
restart: always
environment:
REDIS_USER: expand_redis_admin # 创建新用户
REDIS_PASSWORD: expand_redis_admins # 新用户的密码
REDIS_ROOT_PASSWORD: R349_&^#@e] # root用户的密码
TZ: Asia/Shanghai
volumes:
- 绝对路径/docker/expand/local/redis/redis.conf:/usr/local/etc/redis/redis.conf
- 绝对路径/docker/expand/local/config/redis.conf:/etc/redis/redis.conf
- 绝对路径/docker/expand/local/data/redis:/data
ports:
- 6379:6379 #端口
rabbitmq: #rabbitmq
image: rabbitmq:management-alpine
network_mode: "nginx-lss-net" #网络
container_name: rabbitmq #别名
restart: always
volumes:
- 绝对路径/docker/expand/local/data/rabbitmq:/var/lib/rabbitmq/mnesia
ports:
- "5672:5672" # mq
- "15672:15672" # 本地访问地址
php7.4:
image: php:7.4-fpm
container_name: php7.4
network_mode: "nginx-lss-net"
restart: always
volumes:
- 绝对路径/docker/data/project:/www
- 绝对路径/docker/expand/local/nginx:/etc/nginx
ports:
- "9074:9000" #端口
图片(示例)
注意:
volumes
和docker-compose.yml
文件同级地址
pwd 输出的路径就是下方红框的路径
图片(示例)
2.执行 yml 文件
命令:
docker-composer up
图片(示例)
等待执行,完后
然后我们的PHP
/mysql
/redis
/rabbitmq
容器安装完成
查看PHP
/mysql
/redis
/rabbitmq
是否在一个网络下
命令
docker network inspect nginx-lss-net
可以看到有:PHP
/mysql
/redis
/rabbitmq
二、创建nginx容器
提示:绝对路径和创建php容器一样
1.创建nginx容器
创建nginx容器命令
docker run --name run-nginx -p 8083:80 -v /绝对路径/docker/data/project:/usr/share/nginx/www -v /绝对路径/docker/expand/local/nginx/conf.d:/etc/nginx/conf.d nginx
执行成功后–图片(示例)
2.nginx容器加入网络
创建完成 nginx
容器后 , 把 nginx
容器加入 nginx-lss-net
网络中
命令如下:
docker network connect nginx-lss-net nginx容器ip
3.创建域名
在本机
cd /绝对路径/docker/expand/local/nginx/conf.d
创建 vim default.conf
图片(示例)
default.conf
内容
server {
listen 80;
server_name localhost; # 域名
location / {
root /usr/share/nginx/www; # nginx容器项目地址
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root /www; # PHP容器项目地址
fastcgi_pass 25cbb5d64e4c:9000; ## PHP容器id:PHP容器端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
cd /绝对路径/docker/data/project
到project
目录下
创建 index.php
文件
echo "<?php echo phpinfo();" > index.php
保存完成
在nginx容器执行-重启容器service nginx reload
图片(示例)
总结一下命令
进入容器
docker exec -it 容器id bash
创建网络
docker network create -d bridge 网络名称
网络查看
docker network inspect 网络名称
容器加入网络
docker network connect 网络名称 容器id
nginx重启
service nginx reload
如果配置不可以,欢迎留言,或者直接私信
更多推荐
所有评论(0)