2

我想将最新的 mariadb:10.4.8 作为 docker 容器运行,其数据文件夹作为主机挂载持久化。

这是我的 docker-compose.yaml

database:
mem_limit: 1073741824
image: mariadb:stable
environment:
  MYSQL_DATABASE: mydata
  MYSQL_PASSWORD: '123456'
  MYSQL_ROOT_PASSWORD: '12345678'
  MYSQL_USER: mydata
  MYSQL_ROOT_HOST: '%'
stdin_open: true
volumes:
- /opt/mydata/keys/keyfile.key:/etc/mysql/encryption/keyfile.key
- /opt/mydata/keys/keyfile.enc:/etc/mysql/encryption/keyfile.enc
- /opt/mydata/database:/var/lib/mysql
- /opt/mydata/logs:/var/log/mysql
tty: true
cpu_shares: 512
command:
- --max-allowed-packet=100M
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --net-write-timeout=300
- --net-read-timeout=300
- --log-error=/var/log/mysql/mysql-error.log
- --plugin-load-add=file_key_management
- --file-key-management-filename=/etc/mysql/encryption/keyfile.enc
- --file-key-management-filekey=FILE:/etc/mysql/encryption/keyfile.key
- --file-key-management-encryption-algorithm=AES_CTR
- --innodb-encrypt-log=ON
- --innodb-encrypt-tables=FORCE
labels:
  io.rancher.container.pull_image: always

问题是不再创建“mydata”用户 - 我无法以 root 或 mydata 身份登录。我在“/opt/mydata/database”下看不到任何“mydata”文件夹。与 phpmadmin 的连接会导致:

错误 1045 (28000): 用户 'root'@'localhost' 的访问被拒绝(使用密码:是)

似乎这个任务第一次成功 - 没有问题发生,但如果没有,我可以尽可能多地尝试 - 它不会工作。

当我启动这项服务时 - 第一个 mariadb 容器突然死亡,然后另一个容器开始运行。

这在完全更新的 Ubuntu 18.04.3 LTS 主机上运行。

每次设置都几乎相同,因为我们的 Container 等是针对 Rancher Container Orchestrtion 配置了 terraform。

我尝试了不同的 docker 版本 18.06 和 18.09 CE。

我现在缺乏想法,有什么想法可能是这里的情况吗?

4

1 回答 1

0

阅读“github.com/docker-library/mariadb/issues/262”后,我降级到 10.3.16。创建新的 mariadb 可以可靠地使用该版本。10.3.17、10.3.18 和 10.4.8 具有上述所有问题。

于 2019-10-25T13:22:43.897 回答