使用docker-machine但不在ssh服务器上时出错:您是否试图将目录挂载到文件上(反之亦然)?

问题描述 投票:0回答:1

我正在ubuntu(ec2-instance)服务器上使用nginx运行dockerized django应用程序。我的想法是使用docker-machine进行部署。

[当我使用SSH进入EC2并在其中复制我的应用程序,然后启动docker-compose文件时,一切正常,并且该应用程序运行正常。但是我想在不使用服务器的情况下启动容器,而是使用docker机器。

当我将执行命令指向EC2实例并运行相同的命令(docker-compose -f production.yml up --build)时,出现以下错误:

无法启动服务生产-nginx-容器:OCI运行时创建失败:container_linux.go:346:启动容器进程引起了“ process_linux.go:449:容器初始化引起了\” rootfs_linux.go:58:安装\\“ /用户/myuser/myfolder/myproject/compose/production/nginx/myconf.conf \\“到rootfs \\” / var / lib / docker / overlay2 / 44675a2cf4ac6e3052c9df3bd6fbb35b1ece33736d632199572c6a1c90965c12 / merged \\“在\\ // overlay2 / 44675a2cf4ac6e3052c9df3bd6fbb35b1ece33736d632199572c6a1c90965c12 / merged / etc / nginx / conf.d / default.conf \\“导致\\”不是目录\“ \”:未知:您是否试图将目录挂载到文件上(或反之,反之亦然)?检查指定的主机路径是否存在以及是否为预期的类型

我认为哪个码头工人抱怨的那条线是:

- ./compose/production/nginx/myconf.conf:/etc/nginx/conf.d/default.conf

我正在尝试将我的配置从我的nginx文件映射到nginx docker容器的默认conf。 myconf.conf在那里,它是一个文件。

我的猜测是将文件从本地计算机安装到服务器上的容器时出现问题?但是我不知道如何解决此问题。...关于此错误的其他问题也无济于事。

我在docker机器上运行的指向该实例的命令是否应该完全像我将ssh放入实例并从那里运行一样?不幸的是,我对docker的了解有限。如果有人可以帮助我,我将不胜感激。

非常感谢,请在下面查看我的配置:

production-nginx-container:
    container_name: 'production-nginx-container'
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./compose/production/nginx/myconf.conf:/etc/nginx/conf.d/default.conf
      - /etc/letsencrypt/live/mydomain.de/fullchain.pem:/etc/letsencrypt/live/mydomain.de/fullchain.pem
      - /etc/letsencrypt/live/mydomain.de/privkey.pem:/etc/letsencrypt/live/mydomain.de/privkey.pem
    depends_on:
      - django


django docker docker-compose docker-machine
1个回答
0
投票

即使使用远程$DOCKER_HOST,Docker也无法将本地内容装载到远程容器上。 docker run -v选项和Docker Compose volumes:绑定安装始终被视为运行Docker守护程序的主机上的路径,而不是运行docker命令的主机上的路径。您需要将配置文件和TLS证书之类的内容复制到远程主机,并且在执行此操作时,也可能还需要使用ssh来启动容器。

您可能会在这里考虑像Ansible,Chef或Salt Stack这样的自动化工具是否满足您的需求。这些通常具有用于“确保此文件在远程系统上”和“在某个远程系统上启动此容器”的内置工具。除了在需要本地VM来运行Docker的特定情况下,我不建议使用Docker Machine(通常是通过Docker Toolbox应用程序,在Windows 7或其他没有“本机” Docker应用程序的环境中使用) 。

© www.soinside.com 2019 - 2024. All rights reserved.