无法访问DOCKER容器

无法访问DOCKER容器,docker,docker-compose,Docker,Docker Compose,我在AWS上的Ubuntu 16.04 Xenial中为Nginx和NodeJS设置了两个容器。我使用docker编写。一切正常 我想看看Nginx容器。同样,我使用以下命令: sudo docker exec -it <container-name> bash 路径为(使用echo$path) /home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sb

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

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

sudo docker exec -it <container-name> bash
路径为(使用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映像中有bash解释器吗?例如,它在基础阿尔卑斯山图像中不可用

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

sudo docker exec -it <container-name> sh
sudo docker exec-it sh
并查看错误是否仍然发生

顺便说一句,
usermod-aG docker
将允许您不再使用sudo以用户身份运行docker命令

路径为(使用echo$path)

那是你的主机。。。您的错误表明您无法进入容器,因此不确定您为什么会重复该错误

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

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

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

docker-compose exec nginx ls /

大多数基本映像都运行在alpine linux中,出于空间原因,该linux没有bash,只有sh,因此请尝试使用

docker exec -ti <container> sh
docker exec-ti sh

我尝试使用
/bin/bash
仍然是相同的错误您应该显示您的DockerFile,而不仅仅是@Raj的ComposePossible副本并非所有容器都需要bash外壳。它确实有效,我可以访问目录。谢谢
docker exec -ti <container> sh