我用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
这仅表示用户mysql
有uid
999个。在创建从容器到主机的绑定卷时,该卷中的所有文件都必须对同一uid
s
具有相同的权限。在我的测试机上,docker的guid
值为999,这就是为什么它在主机端显示为999的原因。
至于“修复”,您可以使用uid
dockerfile中已知的(主机级)代替默认文件,也可以忽略它,因为它按预期工作,除非有特定原因需要它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