찾다

 >  Q&A  >  본문

如何让docker以daemon方式运行/bin/bash

请教各位达人一个关于docker的问题哈。我想在docker run的时候,用-d参数运行/bin/bash,然后让这个bash一直跑着,我要用的时候就docker attach上去。但是我一跑docker run -d .... /bin/bash,这个容器就运行结束停下来了。这是为毛啊,有啥解决方案没。。。

怪我咯怪我咯2854일 전987

모든 응답(5)나는 대답할 것이다

  • PHPz

    PHPz2017-04-21 10:57:35

    이 문제는 제가 직접 겪었습니다. 하지만 다른 상황에서는 docker가 실행될 때 컨테이너가 항상 백그라운드에서 실행되고 원격으로 로그인하여 작업할 수 있기를 바랍니다.

    컨테이너에 SSH 원격 로그인이라는 기사를 복사했습니다

    ------콘텐츠 시작------

    컨테이너를 시작한 후 일부 작업을 수행하려면 SSH를 사용하여 로그인해야 할 수도 있습니다. 이 목표를 달성하려면 다음 두 가지 사항을 보장해야 합니다.

    • 컨테이너가 실행 중이어야 합니다.
    • openssh-server가 시작되었습니다.
    으아악

    먼저 이미지에 openssh-server서비스가 설치

    되어 있는지 확인하세요. 으아악

    그런 다음 이미지를 제출하세요.

    으아악

    마지막으로 이미지를 실행하고 생성된 컨테이너를 백그라운드에서 계속 실행합니다.

    으아악

    이제 SSH를 통해 컨테이너에 로그인할 수 있습니다.

    으아악

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-21 10:57:35

    docker run에 지정된 명령이 정지된 명령이 아닌 경우(예: top 실행 및 echo 계속) 자동으로 종료됩니다. -d 명령은 detach를 true로 설정합니다. 공식 문서에 따르면 이 명령은 백그라운드에서 실행되지만 항상 실행되지는 않습니다(일반 Linux 터미널에서 /bin/bash를 실행하는데, 아니요 항상 응답을 기다리며 중단되므로 데몬 모드에서 실행할 방법이 실제로 없습니다 /bin/bash).

    여기서 초기 공식 문서와 현재 공식 문서 사이에는 실제로 일부 불일치가 있습니다. 초기 문서에서는 컨테이너를 데몬 모드로 실행하기 위해 -d가 지정되었다고 나와 있습니다.

    또한 컨테이너에서 bash를 실행해야 하는 경우 docker run -i -t CONTAINER_NAME /bin/bash를 직접 실행하면 됩니다. docker Attach보다 매개변수가 더 많다고 생각되면 별칭을 설정하여 문제를 해결할 수 있습니다.

    으아아아

    별칭을 설정한 후 dockerbash을 직접 실행하여 컨테이너의 bash에 들어갑니다.

    회신하다
    0
  • PHPz

    PHPz2017-04-21 10:57:35

    이는 감독자를 사용하여 달성할 수 있습니다. 동시에 여러 서비스를 시작할 수도 있습니다.
    먼저 yum -y install supervisor를 사용하여 소프트웨어 패키지를 설치하고 /etc/supervisord.conf 구성 파일을 수정하세요
    sshd와 같이 시작하려는 서비스를 추가합니다.

    구체적인 정보는 다음 문서를 참조하세요: http://openstack.blog.163.com/blog/static/236387267201491734019283/

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-21 10:57:35

    docker run --attach=stdin -d image bash, -d 매개변수는 기본적으로 stdin을 끕니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-21 10:57:35

    이미지 빌드를 위해 Dockerfile 파일에 다음 문장을 추가하는 것이 좋습니다.
    CMD tail -f
    다른 명령이 있는 경우
    CMD 기타 명령&& tail -f
    그렇기를 바랍니다. 도움이 되었습니다

    회신하다
    0
  • 취소회신하다