格子衫NO.1 2022-12-04 16:38 采纳率: 100%
浏览 38
已结题

docker启动mysql容器直接闪退

问题是:docker启动mysql容器闪退
整体过程

1、背景:宿主机上有一个正在运行的mysql,端口号3306,我想在docker里面也启动个mysql容器,因为项目是要打包到docker上启动的
2、拉取镜像,我下载的8.0.26版本mysql
3、启动脚本:

docker run -it \
-p 3307:3306 \
--name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.26

4、根据上面的映射创建了对应的文件夹:
/mydata/mysql/log、/mydata/mysql/data、/mydata/mysql/conf
/var/log/mysql、/var/lib/mysql、/etc/mysql/conf.d
其中我还把conf.d这个文件设置了777权限

运行结果及报错内容

结果:执行了上面脚本后没有报错,查看容器时发现其闪退了!

[root@anonymous bin]# docker ps -a
CONTAINER ID   IMAGE                        COMMAND                  CREATED         STATUS                     PORTS                                       NAMES
a90e8bf45a60   mysql:8.0.26                 "docker-entrypoint.s…"   6 seconds ago   Exited (1) 5 seconds ago                                               mysql
2047f35b84b4   seataio/seata-server:1.4.2   "java -Djava.securit…"   19 hours ago    Up 52 seconds              0.0.0.0:8091->8091/tcp, :::8091->8091/tcp   seata-server
036c3cd0c524   nacos/nacos-server:2.0.3     "bin/docker-startup.…"   41 hours ago    Up About a minute          0.0.0.0:8848->8848/tcp, :::8848->8848/tcp   nacos
我的解答思路和尝试过的方法

查看了mysql这个容器的日志,出现了以下内容:

[root@anonymous bin]# docker logs a90e8bf45a60
2022-12-04 07:54:29+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.26-1debian10 started.
2022-12-04 07:54:29+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
    command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.keWuuX7pAG
    /usr/local/bin/docker-entrypoint.sh: line 92: mysqld: command not found

不知道该怎么解决。。。我的/usr/local/bin文件夹里面都是空的,没有docker-entrypoint.sh这个文件
###

我想要达到的结果

我在网上查了很久都没有找到解决方法,有的甚至看不懂在说什么,折磨我两天了,求求大佬们帮助下我吧~~~

  • 写回答

4条回答

  • ygqygq2 2022-12-04 20:38
    关注
    1. 先启动一个不映射任何目录的容器,测试容器镜像能在你这台机器正常跑起来;
    2. 使用 docker cp 把配置复制到本地,方便后面你使用;
    3. docker 添加目录映射,使用 2 中 复制出来的配置,正常跑起来后,修改配置,再测试修改后的配置;
    4. 再添加数据目录、日志目录啥的映射;
    5. 建议使用 docker-compose,一个 docker-compose up -d 命令,直接自动重启了,不需要重复删除啥的操作,方便不少;
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月5日
  • 已采纳回答 12月5日
  • 创建了问题 12月4日