나는 dev 서버를 실행하고있는 노드 도커 컨테이너를 가지고있다. 내 고정 표시기-compose.yml 파일에서실행중인 도커 컨테이너에서 entry 명령 bash에 액세스 할 수 있습니까?
, 엔트리 명령은 다음과 같습니다
...
command: start-dev-server
...
어디서부터 시작-DEV-서버 포인트를 공급 업체 후 서버를 시작하는 스크립트에 설치 :
// /usr/local/bin/start-dev-server
#!/usr/bin/env bash
# install node modules if missing
npm i
# start the dev server
npm run start
그래서 컨테이너를 시작하면 서버가 시작됩니다.
docker exec -it my-container bash
을하지만 거기에 내가 중지하거나 내 서버를 다시 시작할 수 없습니다 :
나는 나는 다음과 같은 명령을 통해 bash는 내 컨테이너에 액세스 할 수 있는지 알고있다. 시작된 명령으로 ssh에 액세스 할 수 있습니까? (예를 들어 서버 로그를 보거나 서버를 다시 시작하지 않으려면 &을 다시 시작하십시오).
아마도 입력 명령이 중지되지 않아서 잘못된 경로로 여기에 걸릴 수 있습니까? 따라서이 경우 누가 내 서버를 시작할 수있는 솔루션을 가지고 있습니까? & 더 유연한 방식으로 제어 할 수 있습니까?
최상의 방법은 컨테이너를 서버로보아야한다고 말합니다. 중지하려면 컨테이너를 중지하고 다시 시작하려면 컨테이너를 다시 시작하십시오. 서버는'stdout'에 로그해야하므로'docker logs my-container'를 사용하여 로그를 볼 수 있습니다. 그래서, 당신 말이 맞아요, 그 명령은 컨테이너를 멈출 것이기 때문에 멈추지 않아야합니다. 해결책을 제안하려면 "더 유연한 방식으로 제어"라고 할 때 무엇을 의미합니까? – charli
실제로 docker logs -f my-container 명령은 내가 원했던대로 실제로 서버를 중지했다가 다시 시작하기 위해 docker 명령을 사용해야합니다. 방금 로그를 볼 수있는 logs 명령의 -f 옵션을 놓쳤습니다. 고마워요. 선생님의 의견에 대답 해 주시면 답변을 수락하겠습니다! – jiboulex
감사! docker 명령과 Docker 모범 사례에 대한 링크를 추가했습니다. – charli