다음 Dockerfile에서 컨테이너를 빌드합니다.
FROM ubuntu:14.04
...
RUN apt-get update && apt-get install -y vim
#RUN ssh-keygen -f /root/.ssh/id_rsa -N strongpass123$%^
RUN ssh-keygen -f /root/.ssh/id_rsa
...
ssh-keygen
저는 이런 일을 거의 하지 않지만 of를 사용하기 전후에 많은 명령이 있습니다.
스크립트로 시작한 docker exec -it thirsty_darwin sh script.sh
다음 이미지에 태그를 지정하고 컨테이너(이미지) 링크를 사용할 수 있다는 것을 알고 있지만 원하는 만큼 명확한 솔루션은 아닙니다.
최악의 시나리오는 ssh-add ~/.ssh/id_rsa
의도한 도구를 사용해야 하는 경우입니다. Expect 도구가 내 비밀번호를 하드코딩했습니다. 나는하고 싶지 않다.
답변1
일반적으로 Docker 이미지에는 비밀을 포함하면 안 됩니다. 바라보다이 답변이 주제에 대한 추가 정보.
Docker는 대화형 빌드를 지원하지 않습니다.이번 호에 명시된 타당한 이유 때문에.
정말로 이 작업을 수행해야 하는 경우 docker commit
다음과 같이 사용할 수 있습니다.
docker build -t thirsty_darwin_base /path/to/Dockerfile
docker run -it --name=thirsty_darwin_changes thirsty_darwin_base /bin/bash
# do interactive stuff in the shell, then exit
docker commit thirsty_darwin_changes thirsty_darwin
이제 thirsty_darwin
상호 작용이 변경됩니다.
업데이트: Docker가 출시되었습니다.더욱 포괄적인 기밀 유지 관리이 답변을 쓴 이후로.