docker - Docker Nginx安装 “Are you trying to mount a directory onto a file (or vice-versa)?”

标签 docker

我一直在尝试为我的 docker 做一个备份系统,除了数据库服务器在Nginx下运行之外,其他一切对于数据库容器都可以正常工作。我一直在环顾四周,似乎我不是唯一遇到此问题的人,但是我一直无法找到解决方案。

脚步:

# docker load -i /path/to/backup-image.tar
# docker run \
    > -v $(pwd)/volumes/home/project/project-git-repo/project-docker/volumes/php-conf/custom-php.ini:/usr/local/etc/php/conf.d/custom-php.ini \
    > -v $(pwd)/volumes/home/project/project-git-repo/project-docker/volumes/php-conf/opcache-recommended.ini:/usr/local/etc/php/conf.d/opcache-recommended.ini \
    > -v $(pwd)/volumes/home/project/project-git-repo/project-docker/volumes/wp-content:/var/www/html \
    > -v $(pwd)/volumes/tmp/html/.well-known:/var/www/html/.well-known \
    > --name websrv project_backup_tmp

最后一条命令输出:
    container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/tmp/project_restore/docker/7aa016ba40e9/volumes/home/project/project-git-repo/project-docker/volumes/php-conf/custom-php.ini\\\" to rootfs \\\"/var/lib/docker/aufs/mnt/b23066c3007d106ae9364ca4e2603e4d5a3e63a0f47d2669ca6580be735adb06\\\" at \\\"/var/lib/docker/aufs/mnt/b23066c3007d106ae9364ca4e2603e4d5a3e63a0f47d2669ca6580be735adb06/usr/local/etc/php/conf.d/custom-php.ini\\\" caused \\\"not a directory\\\"\""
docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/tmp/project_restore/docker/7aa016ba40e9/volumes/home/project/project-git-repo/project-docker/volumes/php-conf/custom-php.ini\\\" to rootfs \\\"/var/lib/docker/aufs/mnt/b23066c3007d106ae9364ca4e2603e4d5a3e63a0f47d2669ca6580be735adb06\\\" at \\\"/var/lib/docker/aufs/mnt/b23066c3007d106ae9364ca4e2603e4d5a3e63a0f47d2669ca6580be735adb06/usr/local/etc/php/conf.d/custom-php.ini\\\" caused \\\"not a directory\\\"\""
: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
ERRO[0001] error waiting for container: context canceled

这是我的docker info的结果:
Containers: 14
 Running: 1
 Paused: 0
 Stopped: 13
Images: 79
Server Version: 17.06.0-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 184
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: cfb82a876ecc11b5ca0977d1733adbe58599088a
runc version: 2d41c047c83e09a6d61d464906feb2a2f3c52aa4
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-83-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 19.59GiB
Name: rajiska-server
ID: 4YFX:52ZF:QKGV:IMY4:6PP4:6P33:JXGT:QHJW:MZTI:QVVX:YU77:ZGR6
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support

最佳答案

我遇到了同样的问题,通常是关于将主机上的文件挂载到在另一台计算机或VM中运行的容器上。

因此,如果您正在运行的容器位于VirtualBox VM或本地计算机以外的其他计算机中,则必须找到另一种同步目录的方法。

但是,如果您使用docker-machine设置VirtualBox VM,通常会在创建的VM上将/home目录安装到/hosthome

例如,如果您的项目位于主目录中,则可以这样挂载它:

docker run -v /hosthome/USERNAME/PROJECT:/path/on/container imagename

哪里:
  • USERNAME是您在主机上的用户名
  • PROJECT是主机上的项目目录的名称
  • 关于docker - Docker Nginx安装 “Are you trying to mount a directory onto a file (or vice-versa)?”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45279391/

    相关文章:

    mongodb - 我正在尝试通过Docker使用Clojure应用程序连接到MongoDB

    docker - 为什么 Docker 不支持 Multi-Tenancy ?

    docker - 如何在 Tensorflow 服务器上使用自定义操作

    azure - 无法在 azure AKS 中为节点池创建节点标签

    macos - 禁止从 Docker for Mac 上的 Docker 容器出站

    php - 如何在同一容器中运行cron和Web应用程序?

    git - 无法将文件推送到远程主机

    spring - 根据 Docker 化和链接的 ActiveMQ 对 Docker 化的 Spring Boot 应用程序进行身份验证

    javascript - 如何通过远程配置运行 Docker 和 node.js

    python - 如何在同一个 docker 镜像上使用不同类型的 gpus(例如 1080Ti 与 2080Ti)而无需重新运行 `python setup.py develop`?