2017-04-26 7 views
0

docker-compose를 사용하여 마운트 된 로컬 볼륨으로 도킹 장치 컨테이너를 실행하려고합니다. 실패가 작동 얻을, 나는이 감소 한 가장 기본적인 버전으로 아래로 고정 표시기 - 구성 :docker-compose로 볼륨을 마운트 할 수 없습니다.

version: '2' 

services: 
    php: 
    image: php:5.6-apache 
    ports: 
     - "8080:80" 
    volumes: 
     - .:/var/www/html 

를 마운트가 고정 표시기에 나타납니다 이렇게하면은 검사 :

"Mounts": [ 
      { 
       "Type": "bind", 
       "Source": "/home/clark/Projects/apis/contracts", 
       "Destination": "/var/www/html", 
       "Mode": "rw", 
       "RW": true, 
       "Propagation": "" 
      } 
     ], 

하지만은/var/www가를 컨테이너의/html 디렉토리가 비어 있습니다.

나는 내가 생각할 수있는 모든 조합을 시도했다. 절대 경로, 상대 경로, $ {pwd}, 존재하는 디렉토리에 마운트되는 이름이 지정된 볼륨에 마운트 ... 존재하지 않는 디렉토리에 마운트 ... 그것은 나를 미치게합니다.

제발 누군가 내가 잘못하고있는 걸 말해 줄 수 있습니까 ???

+0

작성 파일이 완벽하게 유효하며 작동해야합니다. 컨테이너의 디렉토리가 비어 있는지 확인하는 방법에 대한 질문을 업데이트하십시오. 문제가있을 수 있습니다 (FS 사용 권한). 또한 OS를 언급 할 것을 제안합니다 (GNU/Linux 또는 macOS 또는 Windows의 WSL 일 때마다 - 이것은 또한 중요합니다). 'command : cat/proc/mounts' (또는'docker-compose exec php cat) 명령은 다음과 같이'command : ls -la/var/www/html'을 사용하면 좋은 생각입니다./proc/mounts') 또한 잠재적으로 유용한 진단을 제공 할 수 있습니다. – drdaeman

답변

1

여기에서 작동하는 유일한 차이점은 버전 3 도커 작성 파일입니다.

docker-compose up 
Creating composetest_test_1 
Attaching to composetest_test_1 
test_1 | total 8 
test_1 | drwxr-xr-x 2 1000  users   80 Apr 26 16:47 . 
test_1 | drwxr-xr-x 1 www-data www-data  4096 Apr 26 16:49 .. 
test_1 | -rw-r--r-- 1 1000  users   126 Apr 26 16:48 docker-compose.yml 
test_1 | -rw-r--r-- 1 1000  users   0 Apr 26 16:46 iam_a_file 

당신이 상대 경로를 것을 제공 올라올 때 검사

docker-compose config 

까지 모든 물건 :

--- 
version: '3' 

services: 
    test: 
    image: busybox 
    command: ls -la /var/www/html 
    volumes: 
     - .:/var/www/html 

설정 괜찮 확인 :

mkdir /tmp/compose-test && cd /tmp/compose-test 
touch iam_a_file 

도커 파일 구성 , 도커가 전체 p로 변경 ath.

편집 : 또한 PHP로 시도 : 5.6 - 아파치, 그것은 작동합니다.

+0

응답 해 주셔서 감사합니다. 좋아요, 이상한 일로, 당신이'ls -la/var/www/html'로 시도 할 때, 내가 기대했던 것처럼 디렉토리가 가득 찬 것을 보여줍니다! 그러나 나는'docker -it run /bin/bash'를 사용하여 시스템에 들어가고, 그렇게 할 때 디렉토리는 비어 있습니다. 컨테이너의 아파치 서버를 탐색하면 디렉토리가 비어 있음을 알 수 있습니다. – Raiden616

+1

Docker가 새 컨테이너를 작성하고 -v 플래그를 제공하지 않습니다. docker exec 명령을 사용해보십시오. – papey

+0

오른쪽! 하하 나는 실제로 그것을 타이핑하는 동안 궁금해했다. 오케이'docker-compose exec ls/var/html/www'는 제가 기대하는 바를 보여줍니다. 그러나 아파치 목록은 여전히 ​​비어 있습니다. 또한 관련이 있는지 확실하지 않지만 내 컨테이너에는 IP 주소가 없습니다. 그 이유는 무엇일까요? – Raiden616

관련 문제