当前位置: 首页 > 面试题库 >

为什么docker-compose使用user:group 999:999创建目录/文件?

慕金林
2023-03-14
问题内容

我用docker-compose up以下docker-compose.yml

version: '3.5'
services:
 mysql-server:
  image: mysql:5.7
  environment:
    - MYSQL_ROOT_PASSWORD=root_pwd
  volumes:
   - ./var/lib/mysql:/var/lib/mysql:rw

该目录./var/lib/mysql最初不存在。

运行后docker-compose up..

ls -al ./var/lib/mysql命令显示所有带有的文件user:group 999:999

999在系统中找不到用户或组。

为什么* docker-compose选择使用 不存在的uid:gid 创建文件*

就我而言,除非更改所有权,否则无法提交特定目录。但是,即使我这样做,在下次运行时也会docker-compose up将所有权再次更新为999:999

以上问题的解决方法是什么?例如,是否有一种方法可以指示docker-compose使用特定的uid:gid对映射主机中的文件?

主持人:ubuntu-18.04
docker-compose:1.22.0


问题答案:

Docker mysql使用映像所使用的用户创建并填充目录。该用户当然uid在容器内。这uid恰好是999。

具有该用户的用户uid在容器中,但在您的主机中不存在。

在容器上,文件夹如下所示:

root@f86ffddac96c:/var/lib# ls -l
total 32
...
drwxr-xr-x 5 mysql mysql 4096 Mar 19 13:06 mysql
...

在主机上看起来像这样

root@machine:/home/username/mysql/var/lib# ls -l
total 4
drwxr-xr-x 5 999 docker 4096 Mar 19 15:06 mysql

这仅表示用户mysqluid999个。在创建从容器到主机的绑定卷时,该卷中的所有文件都必须对同一uids
具有相同的权限。在我的测试机上,docker的guid值为999,这就是为什么它在主机端显示为999的原因。

至于“修复”,您可以使用uiddockerfile中已知的(主机级)代替默认文件,也可以忽略它,因为它按预期工作,除非有特定原因需要它uid在您的主机系统中显示特定名称。



 类似资料:
  • 本文向大家介绍目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?相关面试题,主要包含被问及目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?时的应答技巧和注意事项,需要的朋友参考一下 答案: 创建目录: mkdir 创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件 复制文件: cp 7. 文件权限修改用什么命令?格式是怎么样的?

  • 问题内容: 我注意到eclipse最近创建了一个.settings目录,其中包含1个文件,我想知道是否应该将此添加到版本控制中?SVN? 还有,这是新的吗?我已经使用eclipse已有相当长的一段时间了,但从未注意到它。 目录中文件的内容是这样的: 这些设置是否应该在工作区范围内而不是特定于项目? 问题答案: 此文件记录项目特定的设置与工作空间首选项。 我注意到该文件通常是在将常规Java项目转换

  • 我面临这个问题,我不知道该怎么办。我们将一个项目从git导入Intellij,当我们执行mvn clean install时,maven开始在项目根目录上创建所有依赖项文件夹。这只发生在我们的一台电脑上,我们不知道为什么: 你知道怎么解决这个问题吗?谢谢使用设置更新。xml Intellij

  • 描述:Dockerfile 中创建一个用户和用户组,通过 user zhagnsan指定使用 某一个用户,发现容器内用户的uid是999,这种情况好像还很普遍。 问题: 1。为什么容器内uid是999 主机上有没有可能 是没有uid 999的用户,这种情况存在吗?

  • 我对docker比较陌生,我想知道docker-compose.yml文件和简单的docker文件有什么基本区别。

  • 经过前文对Docker Compose的讲解,我们以Spring Cloud章节的几个示例项目为例,讲解如何使用Docker Compose部署项目: 准备工作 使用到的示例项目有: 项目名称 作用 microservice-api-gateway API Gateway microservice-consumer-movie-ribbon-with-hystrix 服务消费者 microserv