首页 文章

无法访问DOCKER容器

提问于
浏览
0

我在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/游戏:在/ usr /本地/游戏:/快/箱

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

我如何访问容器?谢谢

3 回答

  • 0

    你确定你的码头图像中有bash解释器吗?例如,它不适用于基础高山图像 .

    您可以尝试启动容器:

    sudo docker exec -it <container-name> sh
    

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

    BTW, usermod -aG docker <username> 将允许您不再使用sudo以用户 <username> 运行docker命令 .

  • 0

    路径是(使用echo $ PATH)

    这是你的主机...你的错误表明你无法进入容器,所以不确定为什么你回应它 .

    我们可以用bash来实现 . 你必须额外安装它 . sh 应该工作 .

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

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

    docker-compose exec nginx ls /
    
  • 3

    大多数基本映像都在高山linux中运行,出于空间原因,没有bash而是sh,所以试试吧

    docker exec -ti <container> sh
    

相关问题