apt-get:在 mysql docker CLI 中找不到命令答案

作者: 分类: 编程代码 时间:1970-01-01

apt-get:在 mysql docker CLI 中找不到命令答案

apt-get: command not found in mysql docker CLIapt-get:在 mysql docker CLI 中找不到命令

首先...是的...是的,我知道有 1000 个问题和解决方案。但不幸的是,他们都没有帮助我。

让我们来解决问题:

我有一个正在运行的 Docker 容器,上面配置了 MySQL。现在我想将绑定地址从 127.0.0.1 更改为 0.0.0.0。不幸的是,我无法打开 my.cnf,因为我没有安装 nano、vim。使用 apk、yum、vim、apt-get 等,我明白了:

apt-get: command not found
apk: command not found
...

有人可以帮我解决我的小问题吗? ***的感谢和问候

【问题讨论】:

标签: mysql bash docker shell


【解决方案1】:

您可以使用docker cp 将文件复制出容器,对其进行编辑,然后再将其docker cp 重新放入。如果您需要这样做以进行故障排除,这可能没问题,但您可能希望在部署过程中解决此问题。您应该能够销毁并重新创建 docker 容器,而无需手动修复配置。这应该在您的 Dockerfile 中处理,或者可能在您的 docker compose 文件中复制正确的配置文件。

【讨论】:

  • 所以你的意思是我应该简单地将 my.cnf 文件从容器中复制出来并更改它并将其放回容器中。
  • docker cping 现有文件可能有意义,但您应该使用类似docker run -v 绑定挂载的方式在启动时将修改后的文件注入容器。您通常不应编辑正在运行的容器内的文件或将修改后的文件复制到其中。谨慎使用docker cpdocker exec 等调试工具,并认识到它们通常不是可重现工作流的一部分。
  • 是的,但正如大卫所说,正确的配置应该在启动时在 docker 中。我只是建议可以使用 docker cp 进行即时编辑,如果您需要这样做以进行故障排除。但实际上,您的 docker 应该以所需的状态出现,以便您可以轻松地销毁和重新创建。
【解决方案2】:

MySQL docker 镜像的默认值已更改为基于 Oracle 的 Ubuntu 发行版。在这个发行版中,默认的包管理器是yum。如果出于某种原因您仍想使用 apt,请显式拉取 Debian 映像。类似mysql:8-debian

查看issue了解更多详情。

【讨论】: