我想将最新的 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。
我现在缺乏想法,有什么想法可能是这里的情况吗?