window上docker安装dnmp环境

搭建环境

Nginx + PHP + MySQL + Redis

Mysql安装
1.下载 MySQL 镜像
  docker search mysql-8

  docker pull  mysql:8

或者 docker pull mysql:8.0.27

 

2.启动一个 mysql 容器

  docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=public123456 --name mysql_8.0.27 mysql:v8.0.27

 

参数说明:

  •  run:创建一个新的容器
  • --name:指定容器的名称
  • -p:端口映射(宿主机端口:容器端口)
  • -e: 传入环境变量
  • -d: 后台运行
  • mysql:v8.0.27  是调用的镜像名称和版本

 

 
3.进入 mysql 容器, 找到对应的配置文件位置和日志文件位置
 
docker exec -it mysql /bin/sh

 

配置文件

日志

 

将容器内的文件拷贝出来, 目的是要一个MySQL的目录结构

# 拷贝 log
docker cp mysql_8.0.27:/etc/mysql D:\docker\mysql\conf
# 拷贝 conf
docker cp mysql_8.0.27:/var/lib/mysql D:\docker\mysql\lib

 

命令解释 : docker cp 容器名:容器内路径 宿主机路径(Win10路径)

拷贝处理的文件里的内容没删除,重新安装mysql集装箱会出现重复启动问题

所以不用拷贝,直接创建 D://docker/mysql

然后再conf里创建my.cnf

[mysqld]
datadir=/var/lib/mysql
 #(默认不是中国时区,使用的时候被坑过)
default-time_zone = '+8:00'
log-error=/var/log/mysql/error.log

 

 

注意:linux里

进入容器内部:

docker exec -it mysql bash

参数说明:

  • -i:标识允许对容器进行操作,交互式操作
  • -t:在容器中新创建一个伪终端
  • /etc/mysql: Mysql容器内的配置文件目录, 目录下包含my.cnf配置和一个conf.d文件夹,my.cnf文件内是一些基础配置。自定义的配置应该卸载conf.d文件夹下的配置文件里,从而覆盖默认的my.cnf
  • /var/lib/mysql:镜像内MySQL的持久化数据存储目录

查看mysql是否开启日志和地址
show VARIABLES like '%log_bin%';

 

4.删除 mysql 容器

 

# 容器 停止 --> 删除
docker stop mysql
docker rm mysql

 

5.采用容器挂载卷的方式生成 mysql 容器

 

docker run --name mysql --restart=always --privileged=true -p 3306:3306 -v D:\docker\mysql\lib:/var/lib/mysql -v D:\docker\mysql\conf:/etc/mysql/conf.d -v D:\docker\mysql\log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=public123456  -d mysql:v8.0.27

 

docker run 
--name mysql   #给容器创建名称
--restart=always # Docker 重启时容器也跟随启动
--privileged=true #Docker 为容易内的 root 用户赋予真正的 root 权限,不然会提示 log 目录权限不足
-p 3306:3306 #开放端口, 宿主机端口:容器端口
-v D:\docker\mysql\lib:/var/lib/mysql #将数据存储目录挂载到容器内的出局存储目录  挂载卷, 宿主机目录在前, 容器目录在后
-v D:\docker\mysql\conf:/etc/mysql/conf.d #将配置目录挂载到容器内的配置目录
-v D:\docker\mysql\log:/var/log/mysql #将日志目录挂载到容器内的日志目录
-e MYSQL_ROOT_PASSWORD=public123456  #配置参数
-d mysql:v8.0.27  #后台运行,镜像

注:

报错,没权限
docker: Error response from daemon: user declined directory sharing D:\docker\mysql-lib.

处理方:docker desktop 的resources里新增文件地址

6.Navicat 连接测试

 

PHP安装

1.下载 PHP 镜像

 docker pull php:8.1.5-fpm

 

2.启动一个 PHP 容器

docker run -d -p 9001:9001 --name php8.1.5 php:8.1.5-fpm

 

3.进入 php8.1.5 容器, 找到对应的配置文件位置和日志文件位置

docker exec -it php8.1.5 /bin/sh

exit

docker cp php8.1.5:/usr/local/var/log D:\docker\php

docker cp php8.1.5:/usr/local/etc D:\docker\php\conf

docker cp php8.1.5:/var/www D:\phpstudy_pro\WWW\

4.删除 php8.1.5 容器

docker stop php8.1.5
docker rm php8.1.5

 

5.采用容器挂载卷的方式生成 php 容器

docker run --name php --restart=always --privileged=true -v D:\docker\php\log:/usr/local/var/log -v D:\docker\php\conf:/usr/local/etc -v D:\phpstudy_pro\WWW\:/var/www/ -p 9000:9000 --link mysql:mysql -d php:8.1.5-fpm

 注:

--link mysql:mysql_alias  #将容器(php)与容器mysql相连,并取别名为mysql_alias(正常也叫msyql就好)

6.进入容器, 安装 php 扩展

 

docker exec -it php /bin/sh
docker-php-ext-install pdo_mysq
docker-php-ext-install mysqli

 

7.检查拓展安装情况

php -m

 

安装nginx

1.下载 Nginx 镜像

docker pull nginx:1.24.0

2.创建一个nginx容器

docker run -d -p 88:88 --name nginx nginx:1.24.0

3.进入 nginx 容器, 找到对应的配置文件位置和日志文件位置

docker exec -it nginx /bin/sh

4.将容器内的文件拷贝出来, 目的是要一个 nginx 配置文件的目录结构

docker cp nginx:/etc/nginx/ D:\docker

5.删除 nginx 容器

docker stop nginx
docker rm nginx

6.采用容器挂载卷的方式生成 nginx 容器

docker run --name nginx --restart=always --privileged=true -p 88:88 -v D:\phpstudy_pro\WWW\:/var/www/ -v D:\docker\nginx\log:/usr/local/var/log -v D:\docker\nginx:/etc/nginx --link php:php8.1.5-fpm -d nginx:1.24.0

7.修改配置文件

 8.重启 nginx

  • 进入 nginx 容器, 执行 nginx -s reload
  • 直接重启 nginx 容器, 执行 docker restart nginx (线上服务器, 不建议这样操作, 建议使用第一种方式!)

9.测试

 

 
php
复制代码
<?php
echo phpinfo();

浏览器中打开 http://localhost:88/

 

 

REDIS安装

1.下载 Redis 镜像

docker pull redis:6.0.6

2.采用容器挂载卷的方式生成 redis 容器

docker run --name redis --restart=always --privileged=true -p 6379:6379 -v D:\docker\redis\data:/data -d redis:6.0.6 --appendonly yes --requirepass 123456

  • --appendonly yes  #redis数据持久化
  • --requirepass 123456#密码设置

3.测试

Redis Desktop Manager 连接测试!

redis-desktop-manager-0.9.0.684

链接:https://pan.baidu.com/s/1-0W-MKaOMndBY4pQ5azz4A
提取码:q4oo

 

redis-desktop-manager-0.8.8.384

链接:https://pan.baidu.com/s/1gtI-kGuDZx35nmYeGuxetw
提取码:y3e1

 

 

posted @ 2023-11-24 14:07  会飞的鹏  阅读(230)  评论(0编辑  收藏  举报