Vreau să creez un container Docker care are un volum montat dintr-un director creat de utilizator în rădăcina gazdei Docker. Gazda este o instanță Ubuntu EC2.
Eroarea
Aș dori să montez /date
directorul de mai jos într-un container Docker, dar primesc eroarea afișată:
ubuntu:~$ ls -l /
total 120
drwxr-xr-x 25 rădăcină rădăcină 4096 10 august 20:51 ./
drwxr-xr-x 25 rădăcină rădăcină 4096 10 august 20:51 ../
drwxr-xr-x 2 root root 4096 22 iulie 13:50 bin/
drwxr-xr-x 3 root root 4096 22 iulie 13:50 boot/
drwxr-xr-x 4 ubuntu ubuntu 4096 august 10 19:58 date/
...
drwxr-xr-x 8 root root 4096 30 mai 12:19 home/
...
drwxr-xr-x 3 root root 4096 20 iunie 13:39 mnt/
...
drwxr-xr-x 12 root root 4096 12 iunie 01:03 usr/
ubuntu:~$ docker run -it --rm -v /data:/data alpine
docker: Răspuns de eroare de la daemon: eroare la crearea căii sursei de montare „/data”: mkdir /data: sistem de fișiere doar pentru citire.
Aceeași comandă funcționează dacă folosesc un director care a venit cu instanța (de ex. /usr
):
ubuntu:~$ docker run -it --rm -v /usr:/data alpine
/ # ls /date
jocurile bin includ lib lib32 local sbin share src
informatii suplimentare
Primesc aceeași eroare, chiar dacă fac următoarele:
- Folosind
--montură
în loc de -v
, chiar și cu numai citire
opțiune.
- Executați comanda de mai sus cu
sudo
.
- S-au schimbat permisiunile pe
/
și date
director către 777
- S-a schimbat proprietarul din
ubuntu
la rădăcină
- Montați un subdirector, cum ar fi
/data/subdir
.
The df
comanda indică faptul că nu există monturi speciale pe rădăcina instanței:
ubuntu:~$ df -h
Filesystem Size Used Avail Use% Montat pe
udev 7,9G 0 7,9G 0% /dev
tmpfs 1.6G 872K 1.6G 1% /run
/dev/xvda1 194G 180G 14G 93% /
tmpfs 7,9G 0 7,9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/loop0 132M 132M 0 100% /snap/docker/796
/dev/loop2 25M 25M 0 100% /snap/amazon-ssm-agent/4046
/dev/loop3 56M 56M 0 100% /snap/core18/2128
/dev/loop1 100M 100M 0 100% /snap/core/11316
/dev/loop4 100M 100M 0 100% /snap/core/11420
/dev/loop5 56M 56M 0 100% /snap/core18/2074
/dev/loop6 34M 34M 0 100% /snap/amazon-ssm-agent/3552
s3fs 256T 0 256T 0% /mnt/s3
tmpfs 1.6G 0 1.6G 0% /run/user/1000
Daemonul docker rulează ca root:
ubuntu:~/$ ps -ef | grep dockerd
rădăcină 964 1 1 19:49 ? 00:00:55 dockerd --group docker --exec-root=/run/snap.docker --data-root=/var/snap/docker/common/var-lib-docker --pidfile=/run/snap .docker/docker.pid --config-file=/var/snap/docker/796/config/daemon.json
root 1302 1 0 19:49 ? 00:00:01 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ubuntu 6868 2649 0 21:20 puncte/1 00:00:00 grep --color=auto dockerd
Mulțumesc anticipat. Aceasta este o problemă enervantă și aș fi crezut că ar fi ușor în Docker și AWS/EC2.