Switching from community edition, having issues mounting current /data/db volume with Docker

Hello everyone,

I am trying out Percona Server for MongoDB. My current deployment is a Mongo community edition Docker container, which all of my other services can talk to. I have a Docker service defined within a docker-compose.yaml file like this, which works perfect for Mongo community:

version: '3.9'
services:
  mongo:
    image: mongo:6.0.2
    container_name: mongo
    env_file:
      - ~/projects/env.list
    networks:
      - local
    ports:
      - 27017:27017
    restart: always
    volumes:
      - /mnt/files:/data/db

Now, when I want to use this same volume path for testing with Percona containers, I get errors after starting up the Percona containers via:

docker run --name percona-test -v /mnt/files:/data/db:rw -d percona/percona-server-mongodb:latest

The container error logs that this produces are as follows:

+ exec mongod --bind_ip_all

t={"$date":"2023-10-11T21:22:26.485+00:00"} s=I c=NETWORK id=4915701 ctx=- msg=Initialized wire specification attr={"spec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":17},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":17},"outgoing":{"minWireVersion":6,"maxWireVersion":17},"isInternalClient":true}}

t={"$date":"2023-10-11T21:22:26.487+00:00"} s=I c=CONTROL id=23285 ctx=main msg=Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'

t={"$date":"2023-10-11T21:22:26.488+00:00"} s=I c=NETWORK id=4648601 ctx=main msg=Implicit TCP FastOpen unavailable. If TCP FastOpen is required, set tcpFastOpenServer, tcpFastOpenClient, and tcpFastOpenQueueSize.

t={"$date":"2023-10-11T21:22:26.490+00:00"} s=I c=REPL id=5123008 ctx=main msg=Successfully registered PrimaryOnlyService attr={"service":"TenantMigrationDonorService","namespace":"config.tenantMigrationDonors"}

t={"$date":"2023-10-11T21:22:26.490+00:00"} s=I c=REPL id=5123008 ctx=main msg=Successfully registered PrimaryOnlyService attr={"service":"TenantMigrationRecipientService","namespace":"config.tenantMigrationRecipients"}

t={"$date":"2023-10-11T21:22:26.490+00:00"} s=I c=REPL id=5123008 ctx=main msg=Successfully registered PrimaryOnlyService attr={"service":"ShardSplitDonorService","namespace":"config.tenantSplitDonors"}

t={"$date":"2023-10-11T21:22:26.490+00:00"} s=I c=CONTROL id=5945603 ctx=main msg=Multi threading initialized

t={"$date":"2023-10-11T21:22:26.490+00:00"} s=I c=CONTROL id=4615611 ctx=initandlisten msg=MongoDB starting attr={"pid":1,"port":27017,"dbPath":"/data/db","architecture":"64-bit","host":"20654c89a2ce"}

t={"$date":"2023-10-11T21:22:26.490+00:00"} s=I c=CONTROL id=23403 ctx=initandlisten msg=Build Info attr={"buildInfo":{"version":"6.0.9-7","gitVersion":"81b02fc96fb1fe0fc550b98f870e1ca01c574dd4","openSSLVersion":"OpenSSL 1.1.1k  FIPS 25 Mar 2021","modules":[],"allocator":"tcmalloc","environment":{"distarch":"x86_64","target_arch":"x86_64"}}}

t={"$date":"2023-10-11T21:22:26.490+00:00"} s=I c=CONTROL id=51765 ctx=initandlisten msg=Operating System attr={"os":{"name":"Oracle Linux Server release 8.8","version":"Kernel 5.15.0-83-generic"}}

t={"$date":"2023-10-11T21:22:26.491+00:00"} s=I c=CONTROL id=21951 ctx=initandlisten msg=Options set by command line attr={"options":{"net":{"bindIp":"*"}}}

t={"$date":"2023-10-11T21:22:26.491+00:00"} s=E c=CONTROL id=20557 ctx=initandlisten msg=DBException in initAndListen, terminating attr={"error":"IllegalOperation: Attempted to create a lock file on a read-only directory: /data/db"}

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=REPL id=4784900 ctx=initandlisten msg=Stepping down the ReplicationCoordinator for shutdown attr={"waitTimeMillis":15000}

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=REPL id=4794602 ctx=initandlisten msg=Attempting to enter quiesce mode

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=- id=6371601 ctx=initandlisten msg=Shutting down the FLE Crud thread pool

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=COMMAND id=4784901 ctx=initandlisten msg=Shutting down the MirrorMaestro

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=SHARDING id=4784902 ctx=initandlisten msg=Shutting down the WaitForMajorityService

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=NETWORK id=20562 ctx=initandlisten msg=Shutdown: going to close listening sockets

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=NETWORK id=4784905 ctx=initandlisten msg=Shutting down the global connection pool

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=CONTROL id=4784906 ctx=initandlisten msg=Shutting down the FlowControlTicketholder

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=- id=20520 ctx=initandlisten msg=Stopping further Flow Control ticket acquisitions.

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=NETWORK id=4784918 ctx=initandlisten msg=Shutting down the ReplicaSetMonitor

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=SHARDING id=4784921 ctx=initandlisten msg=Shutting down the MigrationUtilExecutor

t={"$date":"2023-10-11T21:22:26.492+00:00"} s=I c=ASIO id=22582 ctx=MigrationUtil-TaskExecutor msg=Killing all outstanding egress activity.

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=COMMAND id=4784923 ctx=initandlisten msg=Shutting down the ServiceEntryPoint

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=CONTROL id=4784925 ctx=initandlisten msg=Shutting down free monitoring

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=CONTROL id=4784927 ctx=initandlisten msg=Shutting down the HealthLog

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=CONTROL id=4784928 ctx=initandlisten msg=Shutting down the TTL monitor

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=CONTROL id=6278511 ctx=initandlisten msg=Shutting down the Change Stream Expired Pre-images Remover

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=CONTROL id=4784929 ctx=initandlisten msg=Acquiring the global lock for shutdown

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=- id=4784931 ctx=initandlisten msg=Dropping the scope cache for shutdown

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=CONTROL id=20565 ctx=initandlisten msg=Now exiting

t={"$date":"2023-10-11T21:22:26.493+00:00"} s=I c=CONTROL id=23138 ctx=initandlisten msg=Shutting down attr={"exitCode":100}

I don’t get these read-only errors when launching with regular Mongo community images, but for some reason these Percona Server for MongoDB images are giving read-only folder issues.

Can anyone advise?

Thank you

1 Like

Hello,

I wanted to update everyone that the main change I had to make is to run the container as root. This is not something that I have to do with the community edition; however, the documentation does say to run as root or sudo so I missed this detail.

Hopefully this helps someone else. Thanks for the cool tooling Percona team, I am looking forward to using it!

Hi @jimbo ,

Thanks for the update and yes it needs to run as root user.
Here is the documentation link.

Regards,
Parag