我希望将我的~/.ssh映射到停靠容器.ssh。我让docker写成
version: '3'
volumes:
ssh-data:
driver: local
driver_opts:
type: none
device: ~/.ssh/
o: bind
services:
mysql:
container_name: mysql
image: chagridsada/galera-mariadb
ports:
- "3306:3306"
volumes:
- "ssh-data:/app/.ssh/"
environment:
CLUSTER_NAME: galera-db-cluster
CLUSTER_JOIN:
MYSQL_ROOT_PASSWORD: dev
XTRABACKUP_PASSWORD: dev但是当我尝试运行容器时,它给出了错误。
$ docker-compose up -d
Creating network "training_default" with the default driver
Creating volume "training_ssh-data" with local driver
Creating mysql ... error
ERROR: for mysql Cannot start service mysql: error while mounting volume '/var/lib/docker/volumes/training_ssh-data/_data': failed to mount local volume: mount ~/.ssh/:/var/lib/docker/volumes/training_ssh-data/_data, flags: 0x1000: no such file or directory
ERROR: for mysql Cannot start service mysql: error while mounting volume '/var/lib/docker/volumes/training_ssh-data/_data': failed to mount local volume: mount ~/.ssh/:/var/lib/docker/volumes/training_ssh-data/_data, flags: 0x1000: no such file or directory
ERROR: Encountered errors while bringing up the project.它试图在容器中映射到/var/lib/docker/volumes/training_ssh-data/_data,但在docker-compose.yml中它映射到了/app/.ssh/。
如果我将映射更改为~/.ssh:/app/.ssh,那么它将工作得很好,但我还必须对其他容器使用ssh-data卷,因此我必须创建named volume。
为什么要尝试与/var/lib/docker/volumes/training_ssh-data/_data进行映射?
发布于 2019-11-21 01:13:17
我认为(!?)问题是您在Docker Compose中使用的是相对(~/.ssh)引用,您应该使用绝对引用
如果我没记错的话,您可以在Docker组合文件中使用环境变量,因此可以在Linux上用${HOME}/.ssh替换~/.ssh。
https://stackoverflow.com/questions/58958743
复制相似问题