mall学习过程中mysql和nginx在docker中部署无法运行

Alibaba Cloud Linux 3.2104 LTS 64位
139.224.19.182
参考以下教程
mall在Linux环境下的部署(基于Docker容器) | mall学习教程 (macrozheng.com)
但是原封不动地执行会出现一些问题,因为这个教程写的比较早,很多东西路径变了。

安装docker
按照教程即可
MySQL安装
查询docker日志

 docker  logs -f -t --tail=100 mysql

mysqld: Can’t read dir of ‘/etc/mysql/conf.d/’ (Errcode: 2 - No such file or directory

按教程 mysql 会启动不了 docker ps 看启动不正常
原因是的
由于宿主机的 /mydata/mysql/conf是空的,所以找不到/etc/mysql/conf.d中conf.d这个目录,导致容器创建失败。
配置文件已经不再/etc/mysql里了,里面只有两个空目录,分别是conf.d和mysql.conf.d,这两个目录里面什么都没有。真正的配置文件是/etc/my.cnf,因此需要修改。

解决方案:
重点是下面红色部分 就行了其他继续按教程来 -v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf 
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

Redis安装
无问题

Nginx安装
nginx安装出现了与mysql类似的问题
查询docker日志

 docker  logs -f -t --tail=100 nginx

sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist

“/etc/nginx/nginx.conf” failed (2: No such file or directory)

解决方案:

就下面两排红色的地方有区别 还是路径有点问题

docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx  \
-d nginx:1.22
#加入这行
rm -rf  /mydata/nginx/
docker container cp nginx:/etc/nginx /mydata/nginx/
#这行有区别
mv /mydata/nginx/nginx  /mydata/nginx/conf
docker stop nginx
docker rm nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx  \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.22

你可能感兴趣的:(mysql,docker,学习,java)