8.3.6.3. Docker 전략
Docker
전략을 사용하는 경우 Dockerfile 의 ADD
및 COPY
명령을 사용하여 정의된 모든 입력 보안을 컨테이너 이미지에 추가할 수 있습니다.
보안의 destinationDir
을 지정하지 않으면 Dockerfile 이 있는 동일한 디렉터리로 파일이 복사됩니다. 상대 경로를 destinationDir
로 지정하면 보안이 Dockerfile 위치를 기준으로 해당 디렉터리에 복사됩니다. 그러면 Docker 빌드 작업에서 빌드 중 사용하는 컨텍스트 디렉터리의 일부로 보안 파일을 사용할 수 있습니다.
예 8.1. 보안 및 ConfigMap 데이터를 참조하는 Dockerfile의 예
FROM centos/ruby-22-centos7 USER root COPY ./secret-dir /secrets COPY ./config / # Create a shell script that will output secrets and ConfigMaps when the image is run RUN echo '#!/bin/sh' > /input_report.sh RUN echo '(test -f /secrets/secret1 && echo -n "secret1=" && cat /secrets/secret1)' >> /input_report.sh RUN echo '(test -f /config && echo -n "relative-configMap=" && cat /config)' >> /input_report.sh RUN chmod 755 /input_report.sh CMD ["/bin/sh", "-c", "/input_report.sh"]
일반적으로 사용자는 해당 이미지에서 실행 중인 컨테이너에 보안이 표시되지 않도록 최종 애플리케이션 이미지에서 입력 보안을 제거해야 합니다. 그러나 보안은 추가된 계층에 있는 이미지 자체에 계속 존재합니다. 이러한 제거는 Dockerfile 자체에 포함되어야 합니다.