【问题标题】:Can I access the filesystem of a running NGINX container instance?我可以访问正在运行的 NGINX 容器实例的文件系统吗?
【发布时间】:2018-04-12 23:45:06
【问题描述】:

快速总结: 我有一个单一的 ECS 任务定义,它启动了一个 NGINX(最新)实例和一个 PHP(php:7-fpm)实例。我已经为 site.conf 文件以及我希望 NGINX 服务的 PHP 项目设置了单独的卷。

ECS 服务启动此任务没有问题。我得到的源代码位于“包装器”文件夹中。我们暂时称它为“包装”。在“wrap”里面是一些配置文件、各种其他的 php 文件和另一个名为 public 的文件夹。 public里面是index.php。

我的 site.conf 文件如下所示:

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


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;
}
}

我的 ECS 任务定义挂载点如下所示:

mountPoints: [
    {
      "containerPath": "/etc/nginx/conf.d/",
      "sourceVolume": "config",
      "readOnly": false
    },
    {
      "containerPath": "/usr/local/nginx/",
      "sourceVolume": "webdata",
      "readOnly": false
    }
 ]

ECS任务定义量如下:

"volumes": [
{
  "host": {
    "sourcePath": "/ecs/config"
  },
  "name": "config"
},
{
  "host": {
    "sourcePath": "/ecs/webdata"
  },
  "name": "webdata"
},
{
  "host": {
    "sourcePath": "/ecs/debug"
  },
  "name": "debug"
}

],

ECS 主机上的 webdata 文件夹包含“wrap”文件夹。

出了点问题,因为 NGINX 不断给我一个 404 错误。我试图在 NGINX 容器上运行 Docker attach,但是 - 我不确定我在容器上附加了什么进程。我无法运行 LS、PWD 或任何命令 - 我假设它只是一个 STDout 进程?

如何附加到正在运行的 NGINX 实例以查看文件系统来调试我的问题?或者,我的帖子中是否有任何东西突然出现在任何人身上?

TIA!

【问题讨论】:

    标签: php docker nginx amazon-ecs


    【解决方案1】:

    你可以执行

    docker exec -it $instance_name /bin/bash
    

    使用docker ps 查找实例名称

    【讨论】:

    • 谢谢!正在使用 docker attach 并去除我的头发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多