当前位置: 首页 > 知识库问答 >
问题:

带出口的Docker mysql停止(%1)

阎辰钊
2023-03-14

我试图在docker容器中调出我的MySql。但是,它在代码退出(1)的情况下停止了。下面是我的运行方式:

Docker运行--name demo-db-p 3306:3306-e mysql_root_password=password-d mysql:latest--mount type=bind,source=$(pwd),target=/var/lib/mysql

这是容器的日志

Initializing database
2018-10-12T17:50:42.694183Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2018-10-12T17:50:42.694277Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.12) initializing of server in progress as process 31
mbind: Operation not permitted
mbind: Operation not permitted
mbind: Operation not permitted
mbind: Operation not permitted
2018-10-12T17:51:10.497527Z 0 [ERROR] [MY-011071] [Server] unknown option '--mount'
2018-10-12T17:51:10.497543Z 0 [Warning] [MY-010952] [Server] The privilege system failed to initialize correctly. If you have upgraded your server, make sure you're executing mysql_upgrade to correct the issue.
2018-10-12T17:51:10.497551Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-10-12T17:51:14.130241Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.

请帮帮我...

共有2个答案

桂高义
2023-03-14

Docker run命令的语法基本上是

docker run <docker run options> IMAGE <command and arguments>

所以当你运行时:

docker run \
  --name demo-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d \
  mysql:latest \
  --mount type=bind,source=$(pwd),target=/var/lib/mysql

--mount选项在映像名称之后,因此它作为参数传递给容器。将此选项移动到mysql:latest之前,您将被设置。

孙正业
2023-03-14

更好的答案可能随之而来,我曾经也使用Docker作为MySQL,但这已经有一段时间了。

作为分离容器启动:

docker run -v $PWD:/var/lib/mysql --name demo-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:latest

然后按如下方式附加到它:

docker run -i -t demo-db /bin/bash

关于pwd使用的注意事项:

不需要使用pwd命令,只需要获得shell变量$pwd。当您做foo=$(pwd)有点矫枉过正时,b/c实际上是在子shell中运行pwd命令以返回$pwd

 类似资料:
  • < b >想改进这个问题?通过编辑此帖子添加详细信息并澄清问题。 我用lwjgl框架做了一个游戏——它使用opengl窗口来渲染。我想每5秒钟渲染一次,而不停止游戏的更新。有什么方法可以做到这一点,直接用lwjgl还是用opengl?我猜这应该不是非常复杂,但我似乎找不到任何东西。

  • 问题内容: Docker提供了一种列出正在运行的容器或所有容器(包括已停止的容器)的方法。 这可以通过以下方式完成: 或通过 我们有办法只列出已停止的容器吗? 问题答案: 只能使用以下命令列出停止的容器: 要么

  • Docker为您提供了一种列出正在运行的容器或所有容器(包括停止的容器)的方法。 这可以通过以下方式实现: 或者 我们是否有办法只列出已停止的容器?

  • 我使用Pygame和Pydub用Python编写了一个音乐播放器(我使用Pygame实际播放音乐,而Pydub可能与这个问题无关)。 除非我切换到另一个Pygame窗口,否则即使切换了窗口,音乐也能正常工作。我认为如果我编译它(cx_freeze),这种效果会消失,但那不起作用。 所以我想知道是否有什么方法可以让音乐在窗口切换到另一个Pyplay窗口时继续播放。 我使用而不是声音对象,如果可能有某

  • 我是新来的Spring。当我运行一个Spring批处理应用程序时,我希望只看到“Hello World!”,但相反,我得到了以下附加细节-

  • 问题内容: 快速JUnit问题。我正在运行一些单元测试,其中涉及启动GUI并进行大量工作。 我想在测试后查看结果以目视确认。但是,它到达了代码的结尾并按原样退出。如果要覆盖此设置,请在测试的最后一行放置一个断点。不过,这很尴尬。 有什么选择可以阻止它退出吗? 问题答案: 由于事实上您需要在执行测试期间进行GUI和用户交互,因此这是“功能”测试,而不是“单元”测试。 您可以在最后将结果写入文件,这样