새로운 설정을 사용하여 로컬 디렉토리에서 이미지 가져오기
이전 단계에서는 tarball 파일에서 이미지를 가져왔습니다. 이 단계에서는 로컬 디렉토리에서 이미지를 가져오고 가져오기 프로세스 중에 새로운 구성을 적용하는 방법을 배우게 됩니다. 이는 디렉토리에 파일 시스템 스냅샷이 있고 실행할 명령과 같은 특정 설정을 사용하여 이를 Docker 이미지로 만들려는 경우 유용합니다.
먼저, 간단한 디렉토리 구조와 이미지에 포함될 파일을 만들어 보겠습니다.
mkdir ~/project/myimage
echo "Hello, Docker!" > ~/project/myimage/hello.txt
이렇게 하면 ~/project 디렉토리 내에 myimage라는 디렉토리가 생성되고, 그 안에 "Hello, Docker!" 텍스트가 포함된 hello.txt라는 파일이 생성됩니다.
이제 docker image import 명령어를 사용하여 ~/project/myimage 디렉토리의 내용을 가져오겠습니다. 또한 -c 플래그를 사용하여 이미지에 대한 구성 변경 사항을 지정합니다. 이 경우, 컨테이너가 이 이미지에서 시작될 때 실행할 기본 명령을 정의하는 CMD 지침을 설정합니다.
docker image import -c 'CMD ["/bin/cat", "/hello.txt"]' ~/project/myimage myimage:latest
이 명령어에서:
-c 'CMD ["/bin/cat", "/hello.txt"]'는 이미지의 기본 명령을 /bin/cat /hello.txt로 설정합니다. -c 플래그를 사용하면 CMD, ENTRYPOINT, ENV, EXPOSE, LABEL, ONBUILD, STOPSIGNAL, USER, WORKDIR와 같은 Dockerfile 지침을 적용할 수 있습니다.
~/project/myimage는 파일 시스템 내용이 포함된 로컬 디렉토리의 경로입니다.
myimage:latest는 가져온 이미지에 대한 원하는 저장소 및 태그입니다.
이 명령어를 실행한 후 Docker 는 ~/project/myimage 디렉토리의 내용을 기반으로 새 이미지를 생성하고 지정된 CMD 구성을 적용합니다.
가져오기 및 구성을 확인하려면 이미지를 나열할 수 있습니다.
docker images
저장소가 myimage이고 태그가 latest인 이미지가 표시되어야 합니다.
이제 이 이미지에서 컨테이너를 실행하여 CMD 지침이 올바르게 적용되었는지 확인해 보겠습니다.
docker run myimage:latest
이 명령어는 myimage:latest 이미지에서 컨테이너를 시작합니다. CMD를 /bin/cat /hello.txt로 설정했으므로 컨테이너는 이 명령을 실행하고 hello.txt 파일의 내용인 "Hello, Docker!"를 출력해야 합니다.
터미널에 "Hello, Docker!"가 출력되어야 합니다. 이는 디렉토리 내용이 성공적으로 가져와지고 CMD 구성이 적용되었음을 확인합니다.