提示:本文记录使用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:
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_&^
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:
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_&^
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:
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"
- "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;
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;
fastcgi_pass 25cbb5d64e4c:9000;
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
访问:http://localhost:8083/
图片(示例)
总结一下命令
进入容器
docker exec -it 容器id bash
创建网络
docker network create -d bridge 网络名称
网络查看
docker network inspect 网络名称
容器加入网络
docker network connect 网络名称 容器id
nginx重启
service nginx reload
如果配置不可以,欢迎留言,或者直接私信
|