docker本地卷名

时间:2016-12-30 10:40:07

标签: docker docker-compose

几天前,我在我的新笔记本电脑上安装了docker。我已经使用了docker一段时间,并且非常了解基础知识。然而,出于某种原因,我一直遇到同样的问题,我希望有人能帮到我。

在我的Windows 10 Home笔记本电脑上安装Docker Toolbox之后,我尝试运行一些我使用docker-compose.yml创建的图像。由于我在Windows上的用户目录中有我的确切名称(C:/ Users / Nick van der Meij)并且该名称包含空格,因此我在Docker Host上添加了一个额外的共享文件夹,从C:/ code到/ mnt / code(这工作)。我已使用this指南进行操作

但是,当我尝试运行docker-compose.yml(包含在下面)时,我收到以下错误:

ERROR: for php  Cannot create container for service php: create \mnt\code\basic_php\api: "\\mnt\\code\\basic_php\\api" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed
[31mERROR[0m: Encountered errors while bringing up the project.

据我所知,根据有关卷的官方码头文档,一切似乎都是正确的。我花了很多时间来解决这个问题并尝试了多种格式"对于卷标,但没有任何成功。

有谁知道问题可能是什么?

提前致谢!

搬运工-compose.yml

version: '2'
services:
    mysql:
        image: mysql:5.7
        ports:
            - 3306
        volumes:
            - /var/lib/mysql
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: password
            MYSQL_USER: user
            MYSQL_PASSWORD: password
            MYSQL_DATABASE: database
    nginx:
        image: nginx:1.10.2
        ports:
            - 80:80
            - 443:443
        restart: always
        volumes:
            - /mnt/code/basic_php/nginx/conf:/etc/nginx/conf.d
            - /mnt/code/basic_php/api:/code/api
            - /mnt/code/basic_php/nginx:/code/nginx
        links:
            - php
            - site
        depends_on:
            - php
            - site
    php:
        build: php
        expose:
            - 9000
        restart: always
        volumes:
            - /mnt/code/basic_php/php/conf/php.ini:/usr/local/etc/php/conf.d/custom.ini
            - /mnt/code/basic_php/api:/code/api
        links:
            - mysql
    site:
        restart: always
        build: site
        ports:
            - 80
        container_name: site

3 个答案:

答案 0 :(得分:6)

在搜索网络几个小时后,我终于找到了我想要的东西。就像Wolfgang Blessen在我的问题下面的评论中所说,这个问题确实是一个Windows路径问题。

如果您不希望docker自动将路径窗口转换为unix,则需要添加值为0的COMPOSE_CONVERT_WINDOWS_PATHS环境变量,如下所述:link

答案 1 :(得分:0)

使用git bash并执行

@Bean
public Topic topic() {
    return new ActiveMQTopic("myTopic");
}

然后执行

export COMPOSE_CONVERT_WINDOWS_PATHS=1

答案 2 :(得分:0)

或者只需使用双反斜杠

winpty docker run -it -v C:\\path\\to\\folder:/mount