【问题标题】:Unable to access DOCKER Container无法访问 DOCKER 容器
【发布时间】:2018-08-09 15:35:35
【问题描述】:

我在 AWS 上的 Ubuntu 16.04 Xenial 中为 Nginx 和 NodeJS 设置了两个容器。我使用 docker-compose。一切正常。

我想查看 Nginx 容器。同样,我使用命令:

sudo docker exec -it <container-name> bash

我收到以下错误

oci runtime error: exec failed: container_linux.go:265: starting container process caused "exec: \"bash\": executable file not found in $PATH"

路径是(使用 echo $PATH)

/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games:/usr/local/games:/snap/bin

docker-compose.yml 是:

version: "0.9"
services:

nginx:
  build: ./nginx
  restart: always
  ports:
    - "80:80"
    - "443:443"
  volumes:
    - /etc/letsencrypt/:/etc/letsencrypt/
  links:
    - node:node

node:
  build: ./node
  restart: always
  ports:
   - "8080:8080"
  volumes:
    - ./node:/usr/src/app
    - /usr/src/app/node_modules

如何访问容器?谢谢

【问题讨论】:

标签: docker docker-compose


【解决方案1】:

您确定 bash 解释器在您的 docker 映像中可用吗?例如,它在基本 alpine 图像中不可用。

您可以尝试使用以下命令启动容器:

sudo docker exec -it <container-name> sh

并查看错误是否仍然存在。

顺便说一句,usermod -aG docker &lt;username&gt; 将允许您不再使用 sudo 以用户 &lt;username&gt; 运行 docker 命令。

【讨论】:

  • @Raj 并非所有容器都需要 Bash shell
  • 它确实有效,我可以访问目录。谢谢
【解决方案2】:

路径是(使用 echo $PATH)

那是你的主机...你的错误表明你无法进入容器,所以不知道你为什么要回应。

我们看不到您的基本图像,但 Apline 图像不随 bash 提供。您必须额外安装它。 sh 应该可以工作。

如果您使用 docker compose 来运行容器,则可以使用它来执行命令。

如果你只想列出文件夹,你只需要ls

docker-compose exec nginx ls /

【讨论】:

    【解决方案3】:

    大部分基础镜像都在 alpine linux 中运行,由于空间原因没有 bash 而是 sh,所以尝试使用

    docker exec -ti <container> sh
    

    【讨论】:

      猜你喜欢
      • 2016-03-18
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 2018-06-25
      相关资源
      最近更新 更多