How do multiple containers(create from same image) access the directory(packaged in the image) in other container? There are some ways not elegant:
- Mount directory into a shared volume or host path. When a container changed files in the directory, other containers will perceive it. Is there any idea to make shared volume working like copy-on-write?
- Create a volume for each container, and copy directory into the volume. In this way, the directory have to save multiple copies in disk.
I've browsed this problem [https://stackoverflow.com/questions/29550736/can-i-mount-docker-host-directory-as-copy-on-write-overlay], I don't want containers to run in privileged mode. Is there a better idea?
CodePudding user response:
Per design one container cannot access the files inside another container. You will need to store the data outside of a container, then mount it via volume mount or bind mount. Alternatively you could try to perform some NFS/SMB/... mount of shared storage inside the container.
This is completely independent from running a container in host mode.
CodePudding user response:
Your link in the question already addressed docker very well. Here's the official K8s document for the similar capability by setting the pod attribute shareProcessNamespace: true
and securityContext.capabilities.add: ["SYS_PTRACE"]
.