【发布时间】:2017-02-22 15:31:11
【问题描述】:
我尝试为不同的网站创建一个 docker-compose 图像。
一切正常,除了我的卷。
这里是docker-compose.yml的一个例子:
version: '2'
services:
website:
build:
context: ./dockerfiles/
args:
MYSQL_ROOT_PASSWORD: mysqlp@ssword
volumes:
- ./logs:/var/log
- ./html:/var/www
- ./nginx:/etc/nginx
- ./mysql-data:/var/lib/mysql
ports:
- "8082:80"
- "3307:3306"
这里是我的Dockerfile:
FROM php:5.6-fpm
ARG MYSQL_ROOT_PASSWORD
RUN export DEBIAN_FRONTEND=noninteractive; \
echo mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD | debconf-set-selections; \
echo mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD | debconf-set-selections;
RUN apt-get update && apt-get install -y -q mysql-server php5-mysql nginx wget
EXPOSE 80 3306
VOLUME ["/var/www", "/etc/nginx", "/var/lib/mysql", "/var/log"]
一切正常,预计我的所有文件夹在我的主机卷中都是空的。我想在我的文件夹中查看 nginx conf 和 mysql 数据。
我做错了什么?
编辑 1: 实际上,问题是我希望 docker-compose 在我的 docker 目录中创建该卷(如果它不存在),并使用该卷(如果存在),正如 https://stackoverflow.com/a/39181484 中所解释的那样。但这似乎不起作用。
【问题讨论】:
-
我相信这涵盖了您的情况:Create Docker volume with preexisting data in it
-
实际上问题是我希望 docker-compose 在我的 docker 目录中创建该卷(如果它不存在),并使用该卷(如果存在),正如 stackoverflow.com/a/39181484 中所解释的那样。但它似乎不起作用。
-
目录
./logs没有被创建?我认为这是目前 docker-compose 的默认行为。 -
是的,它已创建但为空。它不应该包含容器“/var/log”中已经存在的内容吗?
标签: docker docker-compose dockerfile