可以将其附加到正在运行烧瓶的docker容器吗?

时间:2020-10-07 20:56:10

标签: docker docker-compose

问题是不言自明的,但只想添加一些细节。我正在运行一个包含一些python flask代码的ubuntu容器:

FROM ubuntu:latest
ADD app/ /app
WORKDIR /app
RUN apt-get update -y && \
    apt-get install -y python3-pip python-dev build-essential
RUN pip3 install -r requirements.txt
RUN pip3 install flask
EXPOSE 50000
ENTRYPOINT ["python3"]
CMD ["app.py"]

docker撰写文件看起来像这样:

version: "2"
services:
  app:
    container_name: flask-app
    restart: always
    build:
      context: ./
      dockerfile: app/Dockerfile
    volumes:
      - "./app:/app"
    ports:
      - "5000:5000"
    stdin_open: true
    tty: true

如何连接到容器并运行交互式bash shell?当前,attach命令只是挂起而没有返回。

1 个答案:

答案 0 :(得分:2)

Docker attach

将本地标准输入,输出和错误流附加到正在运行的容器中
...
注意:attach命令将显示ENTRYPOINT / CMD进程的输出。实际上,当该进程当时根本不与终端进行交互时,这似乎好像挂起了attach命令。

Docker exec

docker exec命令在正在运行的容器中运行新命令。

TL; DR :您希望docker exec -it [docker-instance-id] /bin/sh到达终端。从那时起,docker attach只会从您的烧瓶应用程序中向您显示stdout(这可能没什么,这就是它似乎挂起的原因)。