Hi there,
My issue started a few weeks ago. The Docker desktop application began crashing intermittently without any apparent cause. Done everything short of re-installing my OS (several re-installations of docker, refactoring my compose, using single containers instead of a full stack for testing, software updates on software updates, and as much cache-purging as is possible).
So, I decided to move from Docker Desktop on Linux to just using the Docker CLI to manage the docker engine. Everything ported fine, however, I cannot seem to access my bind mounts anymore. I have bind mounts on 2 separate drives, one internal, one external (connected via USB), and no matter what syntax I use for declaring them as bind mounts (short syntax, long syntax, auto-generated syntax from the Portainer web UI), and the bind mounts are always empty. If I switch to docker desktop and share access to the bind mounts through the resource-sharing panel in the Docker Desktop settings, they work totally fine and have all the desired content in them. Only when starting through the CLI are the bind mounts empty, even using the exact same docker run command or compose.yaml file to launch.
I have included a sample of my compose.yaml file for context. I am still relatively new to docker, so please suggest anything, even dumb things!
compose.yaml sample
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
command: -H unix:///var/run/docker.sock
environment:
- TZ
- PUID
- PGID
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "portainer_data:/data"
restart: always
networks:
- public
swag:
image: lscr.io/linuxserver/swag:latest
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID
- PGID
- TZ
- URL
- VALIDATION
- SUBDOMAINS
- DNSPLUGIN
- ONLY_SUBDOMAINS
volumes:
- swag:/config
ports:
- 443:443
restart: unless-stopped
networks:
- public
heimdall:
image: lscr.io/linuxserver/heimdall:latest
container_name: heimdall
environment:
- TZ
- PUID
- PGID
volumes:
- heimdall:/config
restart: unless-stopped
networks:
- public
depends_on:
- swag
plex:
container_name: plex
image: lscr.io/linuxserver/plex:latest
restart: unless-stopped
environment:
- TZ
- PLEX_CLAIM
- PUID=1000
- PGID=1000
- VERSION=docker
volumes:
- plex:/config
- /plex/media/movies:/movies
- /plex/media/movies4k:/movies4k
- /plex/media/tv:/tv
- /plex2TB/media/tv2TB:/tv2TB
- /plex2TB/media/movies2TB:/movies2TB
- /plex2TB/media/movies4kTB:/movies4k2TB
networks:
- public
depends_on:
- swag
- heimdall
networks:
public:
name: public
volumes:
portainer_data:
name: portainer_data
swag:
name: swag_config
heimdall:
name: heimdall_config
plex:
name: plex_config
EDIT: Just remembered, I should note that I have tried making symlinks from within my home directory to my bind mounts and using those paths in my compose to no avail. All the files located within the bind-mount directories are owned by the appropriate user. Also, the compose.yaml is in a directory that is a Git repository as well as a home directory for a user.
Also, unsure if this is the correct location to be posting this, but figured because of my recent switch from Docker Desktop and the fact that my bind mounts still work when using the Docker Desktop socket made it relevant. Thanks!