docker run이있는 디렉토리로 CD를 넣을 수없는 이유는 무엇입니까? 디렉토리는 분명히

특정 디렉토리에서 응용 프로그램을 실행해야합니다.

$ sudo docker run -P ubuntu/decomposer 'cd /local/deploy/decomposer; ./decomposer-4-15-2014'
2014/10/09 21:30:03 exec: "cd /local/deploy/decomposer; ./decomposer-4-15-2014": stat cd /local/deploy/decomposer; ./decomposer-4-15-2014: no such file or directory

그 디렉토리는 분명히 존재하며 bash를 대화식으로 실행하여 docker에 연결하면 위의 명령을 실행할 수 있습니다.

$ sudo docker run -i -t ubuntu/decomposer /bin/bash
# cd /local/deploy/decomposer; ./decomposer-4-15-2014

전체 경로를 지정하여 프로그램을 실행할 수 있지만 현재 디렉토리에서 시작될 것으로 예상되면 충돌합니다. 내가 무엇을 할 수 있을지?



답변

다음과 같이 명령을 / bin / sh에 인수로 전달하십시오.

sudo docker run -P ubuntu/decomposer /bin/sh -c 'cd /local/deploy/decomposer; ./decomposer-4-15-2014'

답변

-w옵션을 사용하여 작업 디렉토리를 변경할 수 있습니다 .

docker run

  -w, --workdir=""           Working directory inside the container

따라서 귀하의 경우 다음을 실행합니다.

sudo docker run -w /local/deploy/decomposer -P ubuntu/decomposer ./decomposer-4-15-2014

답변

Dockerfile에서 WORKDIR을 사용하여 작업 디렉토리를 설정하십시오. 그런 다음 EXEC로 명령을 실행할 수 있습니다.


답변

권한 문제로 인해 또는 인스턴스가 실행 가능한 사용 가능한 경로를 찾지 못할 수 있습니다. 이것을 확인하려면 실행 가능한 경로를 경로에 추가하고 스크립트를 실행하십시오.

경로에 현재 디렉토리를 추가하려면 아래 명령을 사용하십시오.

$ export PATH=$PATH: