我想将~/.ssh
映射到Docker容器.ssh
。我有docker compose
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
进行映射?