当前位置: 首页 > 知识库问答 >
问题:

无法开启服务nginx: OCI运行时创建失败

强金鑫
2023-03-14

我正在为nginx服务使用docker compose,下面是docker compose。yml文件:

version: '3'

networks:
  laravel:


services:
  nginx:
    image: nginx:stable-alpine
    container_name: nginx
    networks:
      - laravel
    ports:
      - "8088:80"
    volumes:
      - ./src:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
      - mysql


  mysql:
    image: mysql:5.7.22
    container_name: mysql
    restart: unless-stopped
    tty: true
    ports:
      - "4306:3306"
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      MYSQL_DATABASE: homestead
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: secret
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    networks:
      - laravel

  php:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: php
    volumes:
      - ./src:/var/www/html
    ports:
        - "9000:9000"
    networks:
      - laravel

这是默认设置。conf文件

server{
    listen 80;
    index index.php index.html index.htm;
    server_name localhost;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html/public;

    location / {
        try_files $uri $uri/ /index.php?query_string;
    }


    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

这是docker compose up的结果:

错误:for nginx无法启动服务nginx:OCI runtime create失败:container\u linux。go:346:启动容器进程导致“process\u linux”。go:449:容器初始化导致“rootfs\u linux”。转到:58:mounting \“/d/wamp64/www/instawash/nginx/default.conf \”to rootfs \“/mnt/sda1/var/lib/docker/overlay2/a0da06d30448a2583f34955c853cd33433982d96fb5e81b23be4cabad75a3c6b/merged \“at\”/mnt/sda1/var/lib/docker/overlay2/a0da06d3048a2583f34955c53433982d96fb5e81b23be4cabad75a3c6b/merged/a3c6b etc/nginx/conf.d/default.conf \“导致\”不是目录\“\”\:未知:您正在尝试装载目录到文件上(反之亦然)?检查指定的主机路径是否存在,是否为预期类型

目录树目录:

    ├─── mysql/
    ├─── nginx/
    └─── src/
         docker-compose.yml
         Dockerfile

共有3个答案

宋英杰
2023-03-14

我遇到了同样的问题,我通过将nginx配置的docker-compose的目标卷更改为:

volumes:
  - ./src:/var/www/html
  - ./nginx/default.conf

这是我的nginx目录的名称和路径。

亢嘉茂
2023-03-14

在我的开发环境中(这种情况很少见),我必须在路径中添加磁盘号,例如:c:/data/nginx/default。conf:/etc/nginx/conf.d/default。形态

在其他配置中,它不带字母,但不带字母:S/data/nginx/default。conf:/etc/nginx/conf.d/default。形态

公西兴业
2023-03-14

docker-compose文件中卷的目标不能是文件,它必须是目录。

因此,与此相反:

  - ./nginx/default.conf:/etc/nginx/conf.d/default.conf

你可能想要这个:

  - ./nginx/default.conf:/etc/nginx/conf.d  

请参见:https://docs.docker.com/storage/volumes/

 类似资料:
  • 我已经确保为容器注册表(gcr.io)和GKE集群保留相同的项目。 确切的东西在公共集群中工作得很好。我无法找到特定的文档来让它与私有GKE集群一起工作。我有什么遗漏吗?我做错了什么吗?

  • 问题内容: 我使用以下命令在Cnetos 7上安装了jenkins: 如官方文档中所述 但是当我运行时: 我收到以下错误消息: 跑步给了我这个: 跑步给了我这个: 两者都真的无济于事。如何解决此问题? 问题答案: 在Ubuntu 16.04上类似的问题。 要解决此问题,请手动安装Java Runtime Environment: JDK版本9: JDK版本8: 打开Jenkins配置文件: 最后,

  • 我正在尝试dockerize一个Spring启动服务。我开始参考这篇文章。我能够建立图像,但不能运行它。当我试图运行容器时,它失败了,错误如下。 OCI运行时创建失败:container_linux.go:345:启动容器进程导致\“exec:\\”catalina.sh\\“:在$path\”中找不到可执行文件:未知 我使用的是Windows10Docker桌面,我尝试使用其他基本图像,重置Do

  • 我是zipkin服务器的新手。我正尝试在linux服务器上运行zipkin-server-2.12.9-exec以面对以下异常。 2020-03-09 15:36:28.796警告1685---[main]S.C.A.AnnotationConfigApplicationContext:上下文初始化期间遇到异常-取消刷新尝试:org.springFramework.beans.factory.Be

  • 我刚刚开始使用microservices,我想创建一个简单的Eureka服务器来执行我的Serviceregistry。目前,我只想在localhost上运行服务器,稍后我想添加一个注册到其中的示例微服务。问题是,我在尝试启动Eureka服务器时出错。我在Eclipse中使用Spring和Maven在ubuntu vm中开发。 我的POM. xml如下所示: http://maven.apache

  • 我在Linux服务器上用chrome驱动程序版本74运行Selenium时遇到了异常(如下)。它在Windows上运行得很好 未知错误:Chrome启动失败:异常退出(未知错误:DevToolsActivePort文件不存在)(从Chrome位置/usr/bin/google-Chrome启动的进程不再运行,因此ChromeDriver假设Chrome已崩溃。) 我可以通过在ChromeOptio