2016-09-22 5 views
2

docker-compose로 내 자신의 wordpress-nginx-php_fpm 스택을 만들려고하고 있는데 named-volume 및 해당 초기화에 문제가 있습니다. 당신이 볼 수 있듯이, 나는 2라는 이름의 볼륨이docker-compose를 사용하여 여러 컨테이너에서 공유되는 명명 된 볼륨을 초기화하는 방법

version: '2' 
services: 

    db: #https://hub.docker.com/_/mysql/ 
    image: mysql                  
    restart: always 
    volumes: 
     - "wp-db:/var/lib/mysql:rw" 
     - env_file: 
     - "./conf/db/mysql.env" 
    networks: 
     - back                   

    nginx: #https://hub.docker.com/_/nginx/ 
    image: nginx 
    restart: always 
    volumes: 
     - "wp-files:/usr/share/nginx/html" 
     - "./conf/nginx:/nginx:ro" 
     - "./conf/tools:/tools:ro" 
    networks: 
     - front 
     - back 
    ports: 
     - "8080:80" 
    environment: 
     - "PHP_FPM_HOST=php-wp:9000" 
     - "PHP_FPM_ROOT_DIR=/var/www/html" 
    command: "bash /tools/wait-for-it.sh php-wp:9000 -t 30 -- bash /tools/detemplatize-it.sh /nginx/nginx.template:/nginx.conf -- nginx -c /nginx.conf" 

    php-wp: #https://hub.docker.com/_/wordpress/ 
    image: "wordpress:fpm" 
    restart: always 
    volumes: 
     - "wp-files:/var/www/html" 
     - "./conf/tools:/tools:ro" 
    env_file: 
     - "conf/wp/wordpress.env" 
    networks: 
     - back 
    command: "bash /tools/wait-for-it.sh db:3306 -t 30 -- php-fpm -F" 

networks: 
    front: {} 
    back: {} 

volumes: 
    wp-files: {} 
    wp-db: {} 

:

은 여기 내 고정 표시기 - compose.yml입니다. "wp-db"는 "db"서비스에서만 사용되기 때문에 문제가 없습니다.

내 문제는이 개 서비스 (= 용기) 먼저라는 이름의 볼륨에 데이터를 복사합니다 서비스

  • 에 장착은 "WP-파일"볼륨입니까?
  • 두 번째 컨테이너는 첫 번째 컨테이너가 넣은 데이터를 덮어 씁니까?
  • 명명 된 볼륨을 어딘가에서 "초기화"하고 마운트 된 2 개의 컨테이너를 (사용 후) 어떻게 사용합니까? "nocopy"플래그에 대해 들었습니다.
  • 이름이 지정된 볼륨 대신 데이터 컨테이너와 같은 다른 것들을 사용해야 할 의무가 있습니까?

감사합니다. 참고 :

여기

답변

0

내가 대답으로 찾을 수있는 것입니다 (모든 동일한 물리적 호스트에) :

먼저라는 이름의 볼륨에 데이터를 복사합니다 서비스

?

처음 시작하는 용기 (달려있다 -에, -에서 볼륨 덕분에 ...)

두 번째 컨테이너가 첫 번째로 넣어 데이터를 덮어 쓰게됩니다합니까?

아니요, 일단 명명 된 볼륨이 "초기화"(더 이상 비어 없음을 의미)하면 첨부 된 모든 마운트 지점을 덮어 씁니다.

이름이 지정된 볼륨을 어딘가에 "초기화"하고 사용하는 방법 (이후) 2 개의 컨테이너가 마운트되어 있습니까? "nocopy"플래그에 대해 들었습니다.

실제로 "도커 실행"설명서와 같은 "nocopy"플래그가 있지만 다른 플래그 ("ro"또는 "rw")와는 작동하지 않는 것 같습니다.

볼륨 대신 다른 데이터 컨테이너 (예 : 데이터 컨테이너)를 사용해야합니까?

따라서, 아니오.