泊坞窗容器的用户权限会影响主机对docker-compose.yml中已装载卷的主机权限吗?

百合

我有docker-compose.yml如下

version: '2'
services:
  mysql:
    image: centos/mysql-56-centos7:latest
    restart: always
    container_name: mysql
    environment:
       - MYSQL_ROOT_PASSWORD=111111
    volumes:
      - /etc/localtime:/etc/localtime
      - /data/mysql:/var/lib/mysql/data
    ports:
      - 3306:3306

centos/mysql-56-centos7是Docker Hub的映像。docker-compose up用来启动容器,但是它总是失败,原因是:

Can't create test file /var/lib/mysql/data/cdef45a5817c.lower-test

完整信息:

    Creating network "mysql_default" with the default driver
    Creating mysql ... ^M
    ^[[1A^[[2K^MCreating mysql ... ^[[32mdone^[[0m^M^[[1BAttaching to mysql
    ^[[36mmysql    |^[[0m => sourcing 20-validate-variables.sh ...
    ^[[36mmysql    |^[[0m => sourcing 25-validate-replication-variables.sh ...
    ^[[36mmysql    |^[[0m => sourcing 30-base-config.sh ...
    ^[[36mmysql    |^[[0m ---> 16:39:17     Processing basic MySQL configuration files ...
    ^[[36mmysql    |^[[0m => sourcing 60-replication-config.sh ...
    ^[[36mmysql    |^[[0m => sourcing 70-s2i-config.sh ...
    ^[[36mmysql    |^[[0m ---> 16:39:17     Processing additional arbitrary  MySQL configuration provided by s2i ...
    ^[[36mmysql    |^[[0m => sourcing 40-paas.cnf ...
    ^[[36mmysql    |^[[0m => sourcing 50-my-tuning.cnf ...
    ^[[36mmysql    |^[[0m ---> 16:39:17     Initializing database ...
    ^[[36mmysql    |^[[0m ---> 16:39:17     Running mysql_install_db --rpm --datadir=/var/lib/mysql/data
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 0 [Note] /opt/rh/rh-mysql56/root/usr/libexec/mysqld (mysqld 5.6.38) starting as process 30 ...
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Warning] Can't create test file /var/lib/mysql/data/a5d11f4146dd.lower-test
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Warning] Can't create test file /var/lib/mysql/data/a5d11f4146dd.lower-test
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: Using atomics to ref count buffer pool pages
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: The InnoDB memory heap is disabled
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: Memory barrier is not used
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: Compressed tables use zlib 1.2.7
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: Using Linux native AIO
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: Using CPU crc32 instructions
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: Initializing buffer pool, size = 32.0M
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] InnoDB: Completed initialization of buffer pool
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 7f1048c42840  InnoDB: Operating system error number 13 in a file operation.
    ^[[36mmysql    |^[[0m InnoDB: The error means mysqld does not have the access rights to
    ^[[36mmysql    |^[[0m InnoDB: the directory.
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 7f1048c42840  InnoDB: Operating system error number 13 in a file operation.
    ^[[36mmysql    |^[[0m InnoDB: The error means mysqld does not have the access rights to
    ^[[36mmysql    |^[[0m InnoDB: the directory.
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [ERROR] InnoDB: Creating or opening ./ibdata1 failed!
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [ERROR] Plugin 'InnoDB' init function returned error.
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [ERROR] Unknown/unsupported storage engine: InnoDB
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [ERROR] Aborting
    ^[[36mmysql    |^[[0m
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] Binlog end
    ^[[36mmysql    |^[[0m 2020-01-10 16:39:17 30 [Note] /opt/rh/rh-mysql56/root/usr/libexec/mysqld: Shutdown complete

如果我/data/mysql:/var/lib/mysql/data从中删除此行docker-compose.yml,则可以正常启动容器。

docker-compose up在主机上以root特权运行,怎么会有权限问题?我不知道在Docker容器中以哪种用户权限启动MySQL进程,但是这如何影响主机的权限?


其他信息:

在主机上,似乎未启用selinux

# getenforce
Disabled

我chmod mysql文件夹,所以

# ls -l /data
total 0
drwxrwxrwx 2 root root 6 Jan  9 15:28 mysql
沙申克五世

您在主机上启动哪个用户都没有关系docker-compose up当您装入/data/mysql容器时,容器内的安装路径将具有与主机上相同的权限和所有权。容器内的进程无法写入此路径。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

泊坞窗:创建一个mongodb卷,在docker-compose down之后仍保存吗?

来自分类Dev

如何到我的主机连接mysql在泊坞窗容器?

来自分类Dev

了解 docker-compose.yml 中容器的主机名

来自分类Dev

从容器到主机 docker-compose 的卷共享

来自分类Dev

泊坞窗:数据卷容器

来自分类Dev

泊坞窗推送时的权限问题

来自分类Dev

为什么泊坞窗,compose.yml的编辑内容没有反映?

来自分类Dev

从主机解析docker-compose容器名称

来自分类Dev

泊坞窗和弹性beantalk容器意外停止,权限被拒绝

来自分类Dev

泊坞窗和弹性beantalk容器意外停止,权限被拒绝

来自分类Dev

从dockerfile访问docker-compose.yml中设置的卷

来自分类Dev

泊坞窗服务如何设法从单独的泊坞窗容器中调用实例?

来自分类Dev

通过Docker Compose到达主机

来自分类Dev

具有docker-compose的多台主机上的Docker容器

来自分类Dev

使用docker-compose访问docker容器内的主机IP

来自分类Dev

泊坞窗未将端口暴露给网络主机

来自分类Dev

泊坞窗登录错误保存凭据:写入权限错误

来自分类Dev

主机和 docker 容器之间的卷和权限

来自分类Dev

用于卷挂载的docker-compose / wordpress权限错误

来自分类Dev

用于卷挂载的docker-compose / wordpress权限错误

来自分类Dev

当文件从 Docker-compose 中的主机映射卷更改时,热重载失败

来自分类Dev

在主机之间移动docker-compose容器集

来自分类Dev

docker-compose swarm:强制容器在特定主机上运行

来自分类Dev

如何使用docker compose在容器中使用已创建的卷?

来自分类Dev

泊坞窗:显示链接容器中的开放端口

来自分类Dev

Docker / Docker-Compose中的NFS卷

来自分类Dev

Docker主机卷需要什么权限?

来自分类Dev

在docker-compose中创建卷

来自分类Dev

从泊坞窗容器中访问仅在无业游民/虚拟盒子主机上的其他计算机网络

Related 相关文章

  1. 1

    泊坞窗:创建一个mongodb卷,在docker-compose down之后仍保存吗?

  2. 2

    如何到我的主机连接mysql在泊坞窗容器?

  3. 3

    了解 docker-compose.yml 中容器的主机名

  4. 4

    从容器到主机 docker-compose 的卷共享

  5. 5

    泊坞窗:数据卷容器

  6. 6

    泊坞窗推送时的权限问题

  7. 7

    为什么泊坞窗,compose.yml的编辑内容没有反映?

  8. 8

    从主机解析docker-compose容器名称

  9. 9

    泊坞窗和弹性beantalk容器意外停止,权限被拒绝

  10. 10

    泊坞窗和弹性beantalk容器意外停止,权限被拒绝

  11. 11

    从dockerfile访问docker-compose.yml中设置的卷

  12. 12

    泊坞窗服务如何设法从单独的泊坞窗容器中调用实例?

  13. 13

    通过Docker Compose到达主机

  14. 14

    具有docker-compose的多台主机上的Docker容器

  15. 15

    使用docker-compose访问docker容器内的主机IP

  16. 16

    泊坞窗未将端口暴露给网络主机

  17. 17

    泊坞窗登录错误保存凭据:写入权限错误

  18. 18

    主机和 docker 容器之间的卷和权限

  19. 19

    用于卷挂载的docker-compose / wordpress权限错误

  20. 20

    用于卷挂载的docker-compose / wordpress权限错误

  21. 21

    当文件从 Docker-compose 中的主机映射卷更改时,热重载失败

  22. 22

    在主机之间移动docker-compose容器集

  23. 23

    docker-compose swarm:强制容器在特定主机上运行

  24. 24

    如何使用docker compose在容器中使用已创建的卷?

  25. 25

    泊坞窗:显示链接容器中的开放端口

  26. 26

    Docker / Docker-Compose中的NFS卷

  27. 27

    Docker主机卷需要什么权限?

  28. 28

    在docker-compose中创建卷

  29. 29

    从泊坞窗容器中访问仅在无业游民/虚拟盒子主机上的其他计算机网络

热门标签

归档