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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值