首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker ( mariadb)容器在运行ubuntu (-v)后停止。

Docker ( mariadb)容器在运行ubuntu (-v)后停止。
EN

Stack Overflow用户
提问于 2017-10-06 15:22:42
回答 1查看 815关注 0票数 2

在Ubuntu16.04上使用Docker17.05.0-ce,我尝试使用主机目录映射(卷)设置percona停靠映像。这是图像:

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图像上。

EN

回答 1

Stack Overflow用户

发布于 2017-10-06 15:22:42

解决方案

在主机上键入以下命令:

代码语言:javascript
复制
cd /home/myuser/db
sudo chown 1001:0 files

然后再次运行容器,仅此而已:)

道路

  1. 运行失败后,我查看日志:docker logs percona,并看到mysql没有写入dir /var/lib/mysql的权限。
  2. 我运行没有卷的容器:docker run --name percona -e MYSQL_ROOT_PASSWORD=secret -p 6603:3306 -d percona/percona-server:latest mysql -h docker_host_ip -P 6603
  3. 我登录到容器:docker exec -it percona /bin/bash
  4. I型:cd /var/lib
  5. 在执行ls -l之后,我在mysql附近看到下面的行:drwxr-xr-x 5 mysql root 4096 Oct 6 14:39 mysql。这意味着所有者是mysql,而组是root
  6. 我通过id -u mysql获得mysql用户UID (我获得了1001)
  7. 我通过groups mysql检查mysql是否有一个组(根)。因此,要获得根GID,我输入id -g mysql (我得到)
  8. chown命令允许为不存在的用户设置UID:GID文件(!)因此,我们不需要在主机上创建用户mysql。因此,在主机上运行chown ...之后,文件夹files具有与mysql在容器中所期望的相同的用户和组。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46609066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档