【发布时间】:2021-04-24 05:35:46
【问题描述】:
我是 docker 新手,在构建我的第一个容器时遇到了一个奇怪的错误。如果这很重要,我正在使用 WSL2。
这是导致它的部分:
# MySQL Service
mysql:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: usr_data
volumes:
- ./.docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
# - ./.docker/mysql/ohmy.cnf:/etc/mysql/conf.d/my.cnf
- ./.docker/test/test.txt:/tmp/test/test.txt
- mysqldata:/var/lib/mysql
healthcheck:
test: mysqladmin ping -h 127.0.0.1 -u root --password=MYSQL_ROOT_PASSWORD
interval: 5s
retries: 10
my.cnf 和 ohmy.cnf 两个文件都存在且内容相同。
当我使用docker-compose up -d 时出现错误:
ERROR: for mysql Cannot create container for service mysql: not a directory
当我取消注释 ohmy.cnf 行并注释 my.cnf 行时,我没有收到任何错误,并且构建得很好。它也适用于我制作的小 test.txt。
我看不出两者之间的区别,虽然它可能适用于我的小解决方法,但我想首先了解导致错误的原因。
感谢您的宝贵时间。
编辑: 这是我的 ./.docker
./.docker
├── mysql
│ ├── db
│ │ └── db.sql
│ ├── my.cnf
│ └── ohmy.cnf
├── nginx
│ └── conf.d
│ └── php.conf
├── php
│ └── Dockerfile
└── test
└── test.txt
6 directories, 6 files
【问题讨论】:
-
您可以尝试将文件夹名称从
.docker更改为docker吗? -
从
docker重命名为.docker为我解决了错误Cannot create container for service : not a directory,但我不明白为什么:-( -
在
wsl2遇到这个问题,切换到windows-terminalPowerShell然后一切正常。我猜这是docker引起的问题。 -
作为@circulosmeos,我的文件也在一个名为docker的文件夹中,所以给它一个不同的名字解决了我同样的问题。
标签: docker docker-compose docker-volume