【问题标题】:chown: changing ownership of '/var/lib/mysql/': Operation not permittedchown:更改“/var/lib/mysql/”的所有权:不允许操作
【发布时间】:2018-01-17 16:57:15
【问题描述】:

我正在尝试在 openshift 源上部署 mariadb 映像。我在我的 docker 文件中使用 mariadb:10.2.12 。它在本地工作正常,但是当我尝试在 openshift 源上部署时出现以下错误。

初始化数据库 chown:更改“/var/lib/mysql/”的所有权:不允许操作 无法将数据库目录的所有权更改为“mysql” 用户。检查您是否拥有必要的权限,然后重试。

chown 命令来自 mariadb:10.2.12 Docker 文件。

最初我遇到了 root 用户的问题,这在 openshift 源上是不允许的,所以现在我正在使用

用户 mysql

在 docker 文件中。现在我没有收到以 root 身份运行的警告,但 openshift origin 仍然不喜欢 chown。请记住,我不是原始管理员,只是用户。我的docker文件如下:

FROM mariadb:10.2.12

ENV MYSQL_DATABASE="db_profile"

COPY ./my.cnf /etc/mysql/my.cnf
COPY ./db_profile.sql /docker-entrypoint-initdb.d/

USER mysql

EXPOSE 3306

在本地我按如下方式运行它:

码头工人建造。 -t laeeq/ligandprofiledb:0.0.1

docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=mypassword -d laeeq/ligandprofiledb:0.0.1

有解决这个 chown 问题的解决方法吗?

【问题讨论】:

    标签: docker openshift mariadb dockerfile openshift-origin


    【解决方案1】:

    DockerHub 上的 MariaDB 映像没有遵循不需要以 root 用户身份运行的良好做法。

    您应该改用 OpenShift 提供的 MariaDB 映像。例如:

    centos/mariadb-102-centos7
    

    见:

    应该可以从 OpenShift Web 控制台的服务目录浏览器中选择 MariaDB,或者从命令行使用 mariadb 模板。

    【讨论】:

    • 我使用的是 Dockerhub 的 mariadb,因为我需要在启动时复制数据库。 centos/mariadb-102-centos7 可以吗?我用来自 Dockerhub 的 mariadb 官方图片做 COPY ./my.cnf /etc/mysql/my.cnf COPY ./db_profile.sql /docker-entrypoint-initdb.d/
    • 一种方法可能是使用配置映射将备用启动脚本引入容器。然后在部署中设置启动命令以运行备用启动脚本,该脚本在执行原始启动脚本之前执行您需要的操作,或者如果您复制了原始启动脚本,则让它启动数据库。
    【解决方案2】:
    $ ls -ld /var/lib
    drwxr-xr-x 79 root root 4096 Oct  7 20:58 /var/lib
    

    因此,要更改该目录中的任何内容,包括/var/lib/mysql/,您需要成为root

    【讨论】:

    • openshift origin 不允许以 root 身份运行。我还加了RUN adduser mysql root,但还是不行。
    • 如果 Openshift 是云提供商,请向他们提出问题。
    【解决方案3】:

    您应该在 Dockerfile 中的 USER mysql 之前更改所有权,或者如果您需要以 root 身份运行容器,您应该定义服务帐户并使其具有部署权限。你可以关注这个https://github.com/openshift/origin/issues/9131#issuecomment-231952259

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多