Docker - chown:更改“/data/db”的所有权:不允许操作
Docker - chown: changing ownership of '/data/db': Operation not permitted
我正在尝试使用 Docker 运行 我的应用程序,这是我的 yml 文件内容 运行 mongo 容器。
services:
mongodb:
image: mongo:3.4
# ports:
# - "27017:27017"
volumes:
- ./data/mongo:/data/db
restart: always
并在 contianer 中收到此错误:(在 运行ning docker logs 命令后看到此错误)
chown: changing ownership of '/data/db': Operation not permitted
主机有 ./data/mongo 文件夹,这里是详细信息。
drwxrwxrwx 2 nfsnobody nfsnobody 4096 May 11 23:13 mongo
我尝试 运行 按照其中一个论坛的建议在主机上进行此操作。
sudo chgrp 1000 ./data/mongo
不确定这对解决问题有何帮助,因为我们得到的错误是在容器文件夹内,而不是来自主机的文件夹,无论如何我试过了。.
但是得到了这样的回应:
chgrp: changing group of ‘mongo’: Operation not permitted
如何解决这个问题?除了“chgrp”之外还有其他解决方案吗?谢谢。
这是完整的 docker-compose.yml 文件
## You can generate a custom docker compose file automatically on http://reportportal.io/download (Step 2)
## This is example of Docker Compose for ReportPortal
## Do not forget to configure data volumes for production usage
## Execute 'docker-compose -p reportportal up -d --force-recreate'
## to start all containers in daemon mode
## Where:
## '-p reportportal' -- specifies container's prefix (project name)
## '-d' -- enables daemon mode
## '--force-recreate' -- forces re-recreating of all containers
version: '2'
services:
mongodb:
image: mongo:3.4
# ports:
# - "27017:27017"
volumes:
- ./data/mongo:/data/db
restart: always
registry:
image: consul:1.0.6
volumes:
- ./data/consul:/usr/share/consul/data
# ports:
# - "8500:8500"
# - "8300:8300"
# - "53:8600/udp"
command: "agent -server -bootstrap-expect=1 -ui -client 0.0.0.0"
environment:
- 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}'
restart: always
uat:
image: reportportal/service-authorization:4.2.0
#ports:
# - "9999:9999"
depends_on:
- mongodb
environment:
- RP_PROFILES=docker
- RP_SESSION_LIVE=86400 #in seconds
# - RP_MONGO_URI=mongodb://localhost:27017
restart: always
### Another option for gateway
### Can be used instead of traefik
# gateway:
# image: fabiolb/fabio:1.5.8-go1.10
# ports:
# - "9998:9998" # GUI/management
# - "8080:9999" # HTTP exposed
# environment:
# - FABIO_REGISTRY_CONSUL_ADDR=registry:8500
# - FABIO_REGISTRY_CONSUL_REGISTER_NAME=gateway
# - FABIO_PROXY_ADDR=:9999;rt=300s;wt=300s
# restart: always
gateway:
image: traefik:1.6.6
ports:
- "4444:8080" # HTTP exposed
- "8081:8081" # HTTP Administration exposed
# expose:
# - '8080'
command:
- --consulcatalog.endpoint=registry:8500
- --defaultEntryPoints=http
- --entryPoints=Name:http Address::8080
- --web
- --web.address=:8081
restart: always
index:
image: reportportal/service-index:4.2.0
environment:
- RP_SERVER_PORT=8080
- RP_PROXY_CONSUL=true
depends_on:
- registry
- gateway
restart: always
api:
image: reportportal/service-api:4.3.0
depends_on:
- mongodb
environment:
- RP_PROFILES=docker
- JAVA_OPTS=-Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp
# - RP_MONGO_URI=mongodb://localhost:27017
restart: always
ui:
image: reportportal/service-ui:4.3.0
environment:
- RP_SERVER.PORT=8080
- RP_CONSUL.TAGS=urlprefix-/ui opts strip=/ui
- RP_CONSUL.ADDRESS=registry:8500
restart: always
analyzer:
image: reportportal/service-analyzer:4.3.0
depends_on:
- registry
- gateway
- elasticsearch
restart: always
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.1
restart: always
volumes:
- ./data/elasticsearch:/usr/share/elasticsearch/data
environment:
- bootstrap.memory_lock=true
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
# ports:
# - "9200:9200"
jira:
image: reportportal/service-jira:4.0.0
environment:
- RP_PROFILES=docker
# - RP_MONGO_URI=mongodb://localhost:27017
restart: always
rally:
image: reportportal/service-rally:4.3.0
environment:
- RP_PROFILES=docker
# - RP_MONGO_URI=mongodb://localhost:27017
restart: always
Mongo 启动脚本更改 /data/configdb
和 /data/db
中文件的所有权(如果 运行 为根用户。尝试 运行 作为 nfsnobody
(本地 ./data/mongo
的所有者)跳过此步骤:
services:
mongodb:
user: "nfsnobody" # insert either uid or name of the user
您似乎启用了用户命名空间重映射。
在您的主机中打开以下文件
/etc/sysconfig/docker
和Add/Modify这些选项如下所示,如果需要,用您的用户替换 root
OPTIONS='--userns-remap=root:root'
我正在尝试使用 Docker 运行 我的应用程序,这是我的 yml 文件内容 运行 mongo 容器。
services:
mongodb:
image: mongo:3.4
# ports:
# - "27017:27017"
volumes:
- ./data/mongo:/data/db
restart: always
并在 contianer 中收到此错误:(在 运行ning docker logs 命令后看到此错误)
chown: changing ownership of '/data/db': Operation not permitted
主机有 ./data/mongo 文件夹,这里是详细信息。
drwxrwxrwx 2 nfsnobody nfsnobody 4096 May 11 23:13 mongo
我尝试 运行 按照其中一个论坛的建议在主机上进行此操作。
sudo chgrp 1000 ./data/mongo
不确定这对解决问题有何帮助,因为我们得到的错误是在容器文件夹内,而不是来自主机的文件夹,无论如何我试过了。.
但是得到了这样的回应:
chgrp: changing group of ‘mongo’: Operation not permitted
如何解决这个问题?除了“chgrp”之外还有其他解决方案吗?谢谢。
这是完整的 docker-compose.yml 文件
## You can generate a custom docker compose file automatically on http://reportportal.io/download (Step 2)
## This is example of Docker Compose for ReportPortal
## Do not forget to configure data volumes for production usage
## Execute 'docker-compose -p reportportal up -d --force-recreate'
## to start all containers in daemon mode
## Where:
## '-p reportportal' -- specifies container's prefix (project name)
## '-d' -- enables daemon mode
## '--force-recreate' -- forces re-recreating of all containers
version: '2'
services:
mongodb:
image: mongo:3.4
# ports:
# - "27017:27017"
volumes:
- ./data/mongo:/data/db
restart: always
registry:
image: consul:1.0.6
volumes:
- ./data/consul:/usr/share/consul/data
# ports:
# - "8500:8500"
# - "8300:8300"
# - "53:8600/udp"
command: "agent -server -bootstrap-expect=1 -ui -client 0.0.0.0"
environment:
- 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}'
restart: always
uat:
image: reportportal/service-authorization:4.2.0
#ports:
# - "9999:9999"
depends_on:
- mongodb
environment:
- RP_PROFILES=docker
- RP_SESSION_LIVE=86400 #in seconds
# - RP_MONGO_URI=mongodb://localhost:27017
restart: always
### Another option for gateway
### Can be used instead of traefik
# gateway:
# image: fabiolb/fabio:1.5.8-go1.10
# ports:
# - "9998:9998" # GUI/management
# - "8080:9999" # HTTP exposed
# environment:
# - FABIO_REGISTRY_CONSUL_ADDR=registry:8500
# - FABIO_REGISTRY_CONSUL_REGISTER_NAME=gateway
# - FABIO_PROXY_ADDR=:9999;rt=300s;wt=300s
# restart: always
gateway:
image: traefik:1.6.6
ports:
- "4444:8080" # HTTP exposed
- "8081:8081" # HTTP Administration exposed
# expose:
# - '8080'
command:
- --consulcatalog.endpoint=registry:8500
- --defaultEntryPoints=http
- --entryPoints=Name:http Address::8080
- --web
- --web.address=:8081
restart: always
index:
image: reportportal/service-index:4.2.0
environment:
- RP_SERVER_PORT=8080
- RP_PROXY_CONSUL=true
depends_on:
- registry
- gateway
restart: always
api:
image: reportportal/service-api:4.3.0
depends_on:
- mongodb
environment:
- RP_PROFILES=docker
- JAVA_OPTS=-Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp
# - RP_MONGO_URI=mongodb://localhost:27017
restart: always
ui:
image: reportportal/service-ui:4.3.0
environment:
- RP_SERVER.PORT=8080
- RP_CONSUL.TAGS=urlprefix-/ui opts strip=/ui
- RP_CONSUL.ADDRESS=registry:8500
restart: always
analyzer:
image: reportportal/service-analyzer:4.3.0
depends_on:
- registry
- gateway
- elasticsearch
restart: always
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.1
restart: always
volumes:
- ./data/elasticsearch:/usr/share/elasticsearch/data
environment:
- bootstrap.memory_lock=true
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
# ports:
# - "9200:9200"
jira:
image: reportportal/service-jira:4.0.0
environment:
- RP_PROFILES=docker
# - RP_MONGO_URI=mongodb://localhost:27017
restart: always
rally:
image: reportportal/service-rally:4.3.0
environment:
- RP_PROFILES=docker
# - RP_MONGO_URI=mongodb://localhost:27017
restart: always
Mongo 启动脚本更改 /data/configdb
和 /data/db
中文件的所有权(如果 运行 为根用户。尝试 运行 作为 nfsnobody
(本地 ./data/mongo
的所有者)跳过此步骤:
services:
mongodb:
user: "nfsnobody" # insert either uid or name of the user
您似乎启用了用户命名空间重映射。
在您的主机中打开以下文件
/etc/sysconfig/docker
和Add/Modify这些选项如下所示,如果需要,用您的用户替换 root
OPTIONS='--userns-remap=root:root'