저는 Docker로 환경을 관리할 때 도커는 환경으로만 관리하고 소스는 git 같은 툴, 데이터는 또 다른 툴을 이용해서 보통 관리를 하는 편입니다. 그래야 자유도 높게 수정을 할 수 있고, 용량 관리에도 이점이 있기 때문입니다. 하지만 특정한 행동만 취하는 서비스나 잘 모르는 사람에게 전달할 때 한 줄만 커맨드에 입력하여 아주 간편하게 실행해볼 수 있게 하기 위해 docker 자체에 데이터와 소스, 환경을 다 넣어서 감싸기도 합니다.
이번에 과제 결과물 제출을 위해 윗 문단의 후자처럼 잘 모르는 사람이 제 docker image를 커맨드 한 줄로 모든 것을 실행하게 만들기 위해 docker commit을 애용했습니다.
도커 커밋 사용법
# 도커 이미지 현황 확인
docker images
# 현재 활성화 중인 도커 확인
docker ps
도커 이미지 확인을 하면 이미지 현황이 보일 것이고,
도커 컨테이너 확인을 하면 현재 활성화된 컨테이너가 보입니다. 참고로 전체 컨테이너 현황은 docker ps -a 입니다. 실행시간이 안 맞는 점은 감안해주시기 바랍니다 ㅎㅎ..
도커 이미지를 컨테이너로 활성화 시켜서 사용할텐데, 작업한 컨테이너를 종료하지 않고(컨테이너를 종료하면 작업사항이 다 날아갈 수 있습니다) 다음 명령어를 입력해 작업한 컨테이너를 이미지의 다음 버전으로 만듭니다.
위 그림 예시에서의 컨테이너 ID로 example을 만들었습니다. 이렇게 해주면 그림1의 REPOSITORY와 같은 이름의 v9 TAG를 가진 이미지가 하나 더 만들어집니다. 그러면 v8은 이전 작업까지의 결과물을 갖고 있을 것이고, v9는 작업한 도커의 결과까지를 가지고 있을 것입니다
저는 도커로 감싸고 테스트를 하면 꼭 에러가 나더라구요... 그래서 또 커밋을 하고 또 감싸고를 몇 번 합니다. 좀 꼼꼼해져야겠습니다...😅