도커 이미지는 컨테이너 생성의 기반 요소이며 저장소, 이미지 이름, 태그로 관리
도커 이미지의 생성과 삭제, 이미지 구조에 대해 이해 필요
1. 이미지 생성
- 컨테이너 안에서 작업한 내용을 이미지로 만들기
docker commit [OPTION] Container명 [Repository[:Tag]]
- 다음 명령은 whms1 컨테이너를 whms:1.0 이라는 이름의 이미지로 생성
docker commit \
-a "sftth" \
-m "my first commit" \
whms1 whms:1.0
2. 이미지 구조 이해
commit 명령어로 만들어지는 이미지의 구조 이해를 위한 설명
이미지는 컨테이너에서 변경된 사항만 새로운 레이어로 저장
- 이미지 생성
컨테이너 구동(ubuntu 이미지 기반)
docker run -it --name commit_test ubuntu:14.04
root:/# echo test_first! >> first
이미지 생성(commit_test를 commit_test:first 버전 이미지로 생성)
docker commit -a "sftth" -m "first commit" commit_test commit_test:first
컨테이너 구동(commit_test:first 이미지 기반)
docker run -it --name commit_test2 commit_test:first
root:/# echo test_second! >> second
이미지 생성(commit_test2를 commit_test:second 버전 이미지로 생성)
docker commit -a "sftth" -m "second commit" commit_test2 commit_test:second
- inspect을 통한 Layer 정보 확인
docker inspect ubuntu:14.04
...
"sha256:f2fa9f4cf8fd0a521d40e34492b522cee3f35004047e617c75fadeb8bfd1e6b7",
"sha256:48dc77435ad5c63ea60d91e6ad4828c70e7e61755f99982b0505abb8aaa00872",
"sha256:3da511183950aa462f667f43fcda0bb5484c5c73eaa94fcd0a94bbd4db396e1c"
docker inspect commit_test:first
...
"sha256:f2fa9f4cf8fd0a521d40e34492b522cee3f35004047e617c75fadeb8bfd1e6b7",
"sha256:48dc77435ad5c63ea60d91e6ad4828c70e7e61755f99982b0505abb8aaa00872",
"sha256:3da511183950aa462f667f43fcda0bb5484c5c73eaa94fcd0a94bbd4db396e1c",
"sha256:0bbbcd911307d6a504641d14367f4462e9972fd2ae01ea958a9944ffe2f2a1f5" -> first 파일
docker inspect commit_test:second
...
"sha256:f2fa9f4cf8fd0a521d40e34492b522cee3f35004047e617c75fadeb8bfd1e6b7",
"sha256:48dc77435ad5c63ea60d91e6ad4828c70e7e61755f99982b0505abb8aaa00872",
"sha256:3da511183950aa462f667f43fcda0bb5484c5c73eaa94fcd0a94bbd4db396e1c",
"sha256:0bbbcd911307d6a504641d14367f4462e9972fd2ae01ea958a9944ffe2f2a1f5", -> first 파일
"sha256:b6043475e71dd8a020c8c90b269f9fdddc3d2a9a8e3602d6237aeaf8930cabb8" -> second 파일
3. 이미지 배포
- 생성된 이미지를 활용하기 위해 배포 방법은 두가지 방법을 제공
- 도커 허브(Docker Hub) 저장소 활용
- 도커 사설 레지스트리 활용
3.1 도커 허브 저장소 활용
- 도커 허브는 공식적으로 제공되는 저장소
- 기본 Public 이지만 유료로 사용하면 Private 가능
3.2 저장소에 이미지 올리기
#컨테이너 생성
docker run -i -t --name commit_container1 ubuntu:14.04
root@:/# echo my first push >> test
#이미지 생성
docker commit commit_container1 myimagename:0.0
#이미지 명변경(도커 허브 업로드 형태)
docker tag myimagename:0.0 sftth/myimagename:0.0
#도커 허브 로그인
docker login
#이미지 올리기
docker push sftth/myimagename:0.0
댓글남기기