1 拉去nginx 镜像
dokcer pull nginx
mkdir /docker_data/nginx/conf/
docker cp nginx:/etc/nginx/nginx.conf /docker_data/nginx/conf/
docker cp nginx:/etc/nginx/conf.d /docker_data/nginx/conf/
docker cp nginx:/usr/share/nginx/html /docker_data/nginx/html
docker cp nginx:/var/log/nginx /docker_data/nginx/logs
docker rm nginx
#重新实例nginx容器
docker run \
-p 80:80 \
--name nginx \
-v /docker_data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /docker_data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /docker_data/nginx/html:/usr/share/nginx/html \
-v /docker_data/nginx/logs:/var/log/nginx \
-d nginx:latest
2、安装PHP
docker pull php:8.2-fpm
docker run -p 9000:9000 --name php82 -v /docker_data/php82/www:/home/user/www/html -v /docker_data/php82/:/home/user/php-fpm -d php:8.2-fpm
3、配置host 编辑文件 /docker_data/nginx/conf/conf.d
server {
listen 80; #监听80端口
listen [::]:80;
server_name localhost; #也可以填写自己注册的域名
location / {
root /home/user/www/html; #当前配置的页面文件根目录
index index.php index.html index.htm; #添加index.php作为默认首页
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; #错误页面设置
location = /50x.html {
root /home/user/www/html;
}
# 与php-fpm通信的关键设置
location ~ \.php$ {
root /home/user/www/html; #页面文件根目录
fastcgi_pass 172.17.0.6:9000; #php-fpm的通信端口,由于已经将容器9000端口映射到了主机的9000端口,所以这里填“主机ip:9000”也是可以的。
fastcgi_index index.php; #默认主页文件设置
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
}
4、代码存放目录
/docker_data/php82/www
二、安装MYSQL
docker run -d -p 3306:3306 \
--privileged=true \
-v /docker_data/mysql/log:/var/log/mysql \
-v /docker_data/mysql/data:/var/lib/mysql \
-v /docker_data/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql \
mysql
三、安装redis
docker run -d -p 6379:6379 --name redis --privileged=true \
-v /docker_data/redis/redis.conf:/etc/redis/redis.conf \
-v /docker_data/redis/data:/data \
redis \
redis-server /etc/redis/redis.conf