Docker Hub에서 내려 받은 ubuntu 이미지에 nginx 설치 후 신규 이미지 생성
도커 허브에서 내려 받은 이미지 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 22.04 fd1d8f58e8ae 10 days ago 77.9MB
해당 이미지로 컨테이너 생성
$ docker run -d --name ubuntu -it --privileged ubuntu:22.04
ba436e745dee1c5fe18317fdb046630c4119d3eb228d988a96ae6a80e0bc1cb6
생성 된 컨테이너 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba436e745dee ubuntu:22.04 "/bin/bash" 8 seconds ago Up 5 seconds ubuntu
컨테이너 접속 후 nginx 설치
$ docker attach ubuntu
root@ba436e745dee:/# apt update
root@ba436e745dee:/# apt -y install vim nginx
root@ba436e745dee:/# service nginx start; service nginx status
* Starting nginx nginx [ OK ]
* nginx is running
컨테이너로 신규 이미지 생성
Ctrl + P,Q 로 빠져 나온 후 도커 서버에서 진행
$ docker commit -m "nginx install" ubuntu ubuntu_web:22.04
sha256:752aa8517ebdb352cec8c0ff58cfaf2b380538c9a899b2ffaf2a29a116a8efc6
[docker commit 명령어]
- 형식: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- OPTIONS: 커밋 옵션을 지정(--author, --message 등)
- CONTAINER: 커밋할 컨테이너의 이름
- REPOSITORY: 새로 생성될 이미지의 레포지토리 이름
- TAG: 새로 생성될 이미지의 태그를 지정. 태그를 지정하지 않으면, latest 태그가 사용.
커밋 되면서 신규 컨테이너가 생성 됨 (ubuntu_web)
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cc5fdc7e5c2 ubuntu:22.04 "/bin/bash" 14 seconds ago Created ubuntu_web
ba436e745dee ubuntu:22.04 "/bin/bash" 12 minutes ago Up 12 minutes ubuntu
생성 된 신규 이미지 확인 (ubuntu_web)
vim과 nginx 만 설치 했는데.. 용량이 3배 증가 됨.;;
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu_web 22.04 752aa8517ebd 51 seconds ago 239MB
ubuntu 22.04 fd1d8f58e8ae 10 days ago 77.9MB
신규 이미지로 컨테이너 생성 및 확인
- ubuntu_web - 도커 허브 이미지로 생성한 컨테이너
- ubuntu_web1 - 신규(ubuntu_web) 이미지로 생성한 컨테이너 (nginx 설치되어 있음)
$ docker run -d --name ubuntu_web1 -it --privileged ubuntu_web:22.04
77c64adec197ba696d814b9770e084afa5e2bf285a4b8ba9fabede16a151aa23
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
77c64adec197 ubuntu_web:22.04 "/bin/bash" 16 seconds ago Up 14 seconds ubuntu_web1
9cc5fdc7e5c2 ubuntu:22.04 "/bin/bash" 2 minutes ago Up About a minute ubuntu_web
ba436e745dee ubuntu:22.04 "/bin/bash" 14 minutes ago Up 14 minutes ubuntu
$ docker attach ubuntu_web1
root@77c64adec197:/# service nginx start; service nginx status
* Starting nginx nginx [ OK ]
* nginx is running
신규 생성한 이미지를 push 명령을 사용하여 도커 허브로 업로드도 가능 (도커 허브 로그인 필요)