Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Acesso negado para fazer qualquer coisa em diretorio criado pelo container

Boa noite pessoal,

Alguém passou por isso e/ou pode me ajudar com a seguinte situação: Ao criar um container ubuntu, com mapeamento, não importa o mapeamento que eu faça, não tenho permissão para fazer nada nesse ubuntu da imagem. Segue console output para ilustrar:

Obrigado.

imacellone@localhost  ~  sudo docker ps -a
CONTAINER ID        IMAGE 
f279ebca1d38        ubuntu
0b304b088a65        ubuntu
5c1ce379be2d        ubuntu
516c11aa7f1a        ubuntu
6a3bf04df08d        ubuntu
826826a57d6f        ubuntu
 imacellone@localhost  ~  sudo docker container prune -f
Deleted Containers:
f279ebca1d38fe324aa584244746e3623d4ef2fff03efc3f27f1ebd2ee41250c
0b304b088a65840394f3df6ef759de2d1f1187e4f842e525105c8a0d53fc1123
5c1ce379be2dd9029a9263d78d9688442e1a8a4fbc3e4178e5d6e1d445b68e22
516c11aa7f1a293ba8fdfea1710b1413037779f7dc28c54798448874e458b127
6a3bf04df08dcb0322d982b6a5add4035ec55b3cd264361eb1f2c97f9c9e7e3a
826826a57d6fea4407e351e2b6bd01298b0306b69003750e5d5f11566c3e8733
Total reclaimed space: 202 B
 imacellone@localhost  ~  
 imacellone@localhost  ~  
 imacellone@localhost  ~  sudo chmod 777 ~/Desktop/www  
 imacellone@localhost  ~  
 imacellone@localhost  ~  sudo docker run -it -v "/home/imacellone/Desktop/www:/home/www" ubuntu
root@44c8a816f742:/# 
root@44c8a816f742:/# 
root@44c8a816f742:/# cd home/www/
root@44c8a816f742:/home/www# 
root@44c8a816f742:/home/www# touch test.txt
touch: cannot touch 'test.txt': Permission denied
root@44c8a816f742:/home/www# 
root@44c8a816f742:/home/www# ll
ls: cannot open directory '.': Permission denied
root@44c8a816f742:/home/www# 
root@44c8a816f742:/home/www# ls
ls: cannot open directory '.': Permission denied
root@44c8a816f742:/home/www# cd ..; chmod 777 www
chmod: changing permissions of 'www': Permission denied
root@44c8a816f742:/home# 
root@44c8a816f742:/home# sudo su
bash: sudo: command not found
root@44c8a816f742:/home# 
root@44c8a816f742:/home# ll
total 20
drwxr-xr-x. 1 root root 4096 Jan 23 01:16 ./
drwxr-xr-x. 1 root root 4096 Jan 23 01:16 ../
drwxrwxrwx. 2 root root 4096 Jan 23 01:05 www/
root@44c8a816f742:/home# exit
 imacellone@localhost  ~  
 imacellone@localhost  ~  
 imacellone@localhost  ~ 
5 respostas

Olá Ítalo, tudo bem?

Repliquei seus passos aqui e não tive problemas, fiz da seguinte maneira (acesso usuário padrão)

cd /home/imacellone/Desktop/

mkdir www

sudo docker run -it -v "/home/imacellone/Desktop/www:/home/www" ubuntu

Dentro do container (listar diretórios):

df -h

O diretório consta:

cd /home/www/

Cria arquivo

touch teste.txt

Replica esses passos e me fala se foi tudo certo.

Opa José,

Tentei replicar o que você fez aí e não deu certo. Fiz imprimir mais algumas informações caso seja de ajuda. Antes de testar o seu exemplo fiz com que o docker não precise de sudo. Segue output abaixo:

imacellone@localhost  ~  uname -a
Linux localhost.localdomain 4.14.13-300.fc27.x86_64 #1 SMP Thu Jan 11 04:00:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
 imacellone@localhost  ~  docker --version
Docker version 1.13.1, build caba767-unsupported
 imacellone@localhost  ~  
 imacellone@localhost  ~  cd Desktop; mkdir www 
 imacellone@localhost  ~/Desktop  ll
total 8.0K
drwxrwxr-x. 2 imacellone imacellone 4.0K Jan 23 07:29 www
 imacellone@localhost  ~/Desktop  docker run -it -v "/home/imacellone/Desktop/www:/home/www" ubuntu
root@ec06688ed231:/# 
root@ec06688ed231:/# 
root@ec06688ed231:/# df -h
Filesystem               Size  Used Avail Use% Mounted on
overlay                   49G   12G   36G  25% /
tmpfs                    3.9G     0  3.9G   0% /dev
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/fedora-home  171G   14G  149G   9% /home/www
/dev/mapper/fedora-root   49G   12G   36G  25% /etc/hosts
shm                       64M     0   64M   0% /dev/shm
tmpfs                    3.9G     0  3.9G   0% /proc/scsi
tmpfs                    3.9G     0  3.9G   0% /sys/firmware
root@ec06688ed231:/# cd 
.dockerenv  boot/       etc/        lib/        media/      opt/        root/       sbin/       sys/        usr/        
bin/        dev/        home/       lib64/      mnt/        proc/       run/        srv/        tmp/        var/        
root@ec06688ed231:/# cd home/
root@ec06688ed231:/home# cd www/
root@ec06688ed231:/home/www# 
root@ec06688ed231:/home/www# ll
ls: cannot open directory '.': Permission denied
root@ec06688ed231:/home/www# touch teste.txt
touch: cannot touch 'teste.txt': Permission denied
root@ec06688ed231:/home/www# exit
 ✘ imacellone@localhost  ~/Desktop 

Tentei com outra imagem, porém o resultado é o mesmo

 imacellone@localhost  ~  docker run -it -v "/home/imacellone/Desktop/www:/home/www" fedora /bin/bash
[root@9eefd80a5935 /]# 
[root@9eefd80a5935 /]# 
[root@9eefd80a5935 /]# 
[root@9eefd80a5935 /]# 
[root@9eefd80a5935 /]# ll
total 64
lrwxrwxrwx.   1 root root    7 Aug  2 23:32 bin -> usr/bin
dr-xr-xr-x.   2 root root 4096 Aug  2 23:32 boot
drwxr-xr-x.   5 root root  360 Jan 23 09:57 dev
drwxr-xr-x.   1 root root 4096 Jan 23 09:57 etc
drwxr-xr-x.   1 root root 4096 Jan 23 09:57 home
lrwxrwxrwx.   1 root root    7 Aug  2 23:32 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Aug  2 23:32 lib64 -> usr/lib64
drwx------.   2 root root 4096 Nov 10 12:14 lost+found
drwxr-xr-x.   2 root root 4096 Aug  2 23:32 media
drwxr-xr-x.   2 root root 4096 Aug  2 23:32 mnt
drwxr-xr-x.   2 root root 4096 Aug  2 23:32 opt
dr-xr-xr-x. 319 root root    0 Jan 23 09:57 proc
dr-xr-x---.   2 root root 4096 Nov 10 12:15 root
drwxr-xr-x.   1 root root 4096 Jan 23 09:57 run
lrwxrwxrwx.   1 root root    8 Aug  2 23:32 sbin -> usr/sbin
drwxr-xr-x.   2 root root 4096 Aug  2 23:32 srv
dr-xr-xr-x.  13 root root    0 Jan 23 09:09 sys
drwxrwxrwt.   7 root root 4096 Nov 10 12:15 tmp
drwxr-xr-x.  12 root root 4096 Nov 10 12:14 usr
drwxr-xr-x.  19 root root 4096 Nov 10 12:15 var
[root@9eefd80a5935 /]# cd home/www/
[root@9eefd80a5935 www]# ll
ls: cannot open directory '.': Permission denied
[root@9eefd80a5935 www]# exit
 ✘ imacellone@localhost  ~ 

Consegui adicionando a flag --privileged:

docker run --privileged -it -v "/home/imacellone/www:/var/www" fedora /bin/bash

Só assim funcionou!

solução!

Olá Ítalo

Uma coisa que percebi é uma diferença grande na versão do Docker rodando na sua máquina, estou executando a versão 17.12.0-ce.

Faz o teste de atualizar a versão https://docs.docker.com/engine/installation/linux/docker-ce/fedora/

Verifica se dessa maneira o erro persiste

Um abraço.