1. mysql
查询mysql的docker内部日志得到:
mysqld: Can’t read dir of ‘/etc/mysql/conf.d/’ (Errcode: 2 - No such file or directory
由于宿主机的 /mydata/mysql/conf是空的,所以找不到/etc/mysql/conf.d中conf.d这个目录,导致容器创建失败。
配置文件已经不再/etc/mysql里了,里面只有两个空目录,分别是conf.d和mysql.conf.d,这两个目录里面什么都没有。真正的配置文件是/etc/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=123456 \
-d mysql:5.7
2. nginx
查询docker日志得到报错:
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
以上内容参考:https://blog.csdn.net/weixin_45554549/article/details/128357270