2017-01-16 3 views
0

Моей локальной папки выглядит так:Почему я должен использовать команду томов в докер-компоновать

docker-compose.yml 
\nginx-proxy 
    \code 
     index.html 
    nginx.conf 
    Dockerfile 

index.html содержит простой HTML-код. nginx.conf содержит эту простую конфигурацию:

worker_processes 1; 
events { 
    worker_connections 1024; 
} 
http { 
    sendfile on; 
    server { 
     listent 80; 
     root /code; 
     index index.html; 
    } 
} 

Dockerfile содержит следующие инструкции:

FROM nginx:latest 
COPY nginx.conf /etc/nginx/nginx.conf 
COPY ./code /code 

И, наконец, docker-compose содержит следующие инструкции:

nginx: 
    build: ./nginx-proxy 
    container_name: nginx-proxy 
    ports: 
     - "8181:80" 

Когда я бегу docker-compose up и перейти к localhost:8181 по какой-то причине Я вижу приветственную страницу nginx (не мой index.html), если, однако, я sl ightly изменить Докер-compose.yml:

nginx: 
    build: ./nginx-proxy 
    container_name: nginx-proxy 
    ports: 
     - "8181:80" 
    volumes: 
     - ./nginx-proxy/code:/code 
     - ./nginx-proxy/nginx.conf:/etc/nginx/nginx.conf 

Итак, мой вопрос, почему я должен указать это volumes инструкции? Я хотел бы вместо этого использовать мой файл Dockerfile с инструкциями COPY.

ответ

1

Как правило, они вам не понадобятся, пока вы, например, не захотите изменить код на хосте и посмотреть изменения в контейнере докера.

Ваша установка выглядит хорошо, все, что вам нужно, это определение вашего контекста сборки как

сборки: контекст: ./nginx-proxy

Другое то, что ваши заявления COPY копирует содержимое прямо, как вы ожидали во время сборки, поэтому нет необходимости использовать объемы во время выполнения для этого (кроме случая синхронизации, как указано вверху)

+0

Спасибо! Означает ли это, что вся проблема заключается в ключевом ключе этого контекста? Если я добавлю его и удалю тома, будет ли он работать так же, как без контекста и с томами? – Jacobian

+0

Правильно, это должно быть так. Понятно, что ты сделал/думаешь только правильно –

+0

Спасибо! Я проверю его через минуту! – Jacobian

 Смежные вопросы

  • Нет связанных вопросов^_^