在定义卷(-v)时,在Ubuntu上运行后,Docker percona(mysql mariadb)容器停止运行
问题描述:
在使用Docker 17.05.0-ce的Ubuntu 16.04上,尝试使用主机目录映射(卷)设置percona-mysql docker映像。以下是图像:在定义卷(-v)时,在Ubuntu上运行后,Docker percona(mysql mariadb)容器停止运行
docker pull percona/percona-server:latest
,这里是容器运行命令:
docker run --name percona -e MYSQL_ROOT_PASSWORD=secret -v /home/myuser/db/files:/var/lib/mysql -p 6603:3306 -d percona/percona-server:latest mysql -h docker_host_ip -P 6603
的问题是,容器立即停止此命令后 - 但如果我不使用-v ...
参数(卷映射)然后容器启动没有问题。如何解决这个问题呢?
此问题可能也可能在mysql或mariadb图像上。
答
解决方案
键入以下主机上的命令:
cd /home/myuser/db
sudo chown 1001:0 files
然后再次运行容器和多数民众都:)
路
- 运行的失败之后,我期待在日志中:
docker logs percona
并看到mysql没有权限写入目录/var/lib/mysql
- 我没有量运行容器:
docker run --name percona -e MYSQL_ROOT_PASSWORD=secret -p 6603:3306 -d percona/percona-server:latest mysql -h docker_host_ip -P 6603
- 我登录到容器:
docker exec -it percona /bin/bash
- I型:
cd /var/lib
- 执行
ls -l
我看到后不久的mysql目录下面一行:drwxr-xr-x 5 mysql root 4096 Oct 6 14:39 mysql
。这意味着所有者是mysql
,组是root
。 - 我得到
id -u mysql
MySQL用户UID(I得到) - 我检查由
groups mysql
该MySQL有一组(根目录)。因此,要获得根GID I型id -g mysql
(我得到) - 的
chown
命令允许设定文件UID:GID即使存在这些犯规的用户,所以我们并不需要在主机上创建用户mysql
(!)。因此,在主机上运行chown ...
之后,文件夹files
具有与容器中的mysql期望的完全相同的用户和组。