如何让docker以daemon方式运行/bin/bash
怪我咯
怪我咯 2017-04-21 10:55:35
0
5
898

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

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(5)
PHPzhong

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

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

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

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

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

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

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

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

으아악

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

으아악

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

으아악
左手右手慢动作

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에 들어갑니다.

PHPzhong

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

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

Peter_Zhu

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

刘奇

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿