본문 바로가기

내직업은 IT종사자/기타

[Docker] 도커 라이프사이클 lifecycle

반응형

재즐보프 왕초보도 따라하는 도커 인강

 

 

 

1. push

만든 도커 이미지를 docker hub에 옮겨 놓을때 사용됩니다.

 

docker hub에 옮겨놓는 방법

1. docker login

2. docker push [만든 이미지]

 

2. pull

docker pull [image]
# ex) docker pull nginx

 

docker hub에서  pull [image] 하게 되면  image 가 다운로드 됩니다.

 

3. run

 

docker run -d -p [host port]:[container port] --name [container name] [image]
# ex) docker run -d -p 80:80 --name nx nginx

 

run을  하면  container 생성 + 실행이 동시에 됩니다

 

* 여기서 -d 는 detached 모드로 컨테이너 실행한 후 터미널이 즉시 반환되어 다른 명령어를 바로 입력할 수 있게 됩니다

*  -p  publish

* run은 할때마다 container 가 계속 생성되므로 주의!

* container 를 생성해야 할때만  run 사용, 아니면  목적에 따라 create, start 따로 사용해야합니다

 

4.create

docker create -p 80:80 --name [container 이름] [image]
# ex) docker create -p 80:80 --name nx nginx


위의 예시대로 입력하면 nginx 이미지로  nx  이름을 가진 컨테이너가 생성이 되며  해당 컨테이너의 포트는 80 입니다.

생성만 되고 실행은 되지않은상태로 exited(stop) 상태로 됩니다. (실행하기 위해서는 start 명령 추가로 필요)

 

 

5.start

docker start [container name]
# ex) docker start nx

 

4.create 에서 생성된 컨테이너를 start 명령어로 실행해 주면 exited(stop) -> running 상태로 바뀌게 됩니다.

* start 되면 위의 라이프사이클 그림과 같이 실행된 컨테이너가 메모리에 올라가게 됩니다

 

6.stop

docker stop [container name | image]
# ex) docker stop nx

 

*stop  되면 위의 라이프사이클 그림과 같이 실행되고 있던 컨테이너가 메모리에서 내려옵니다

 

 

7. rm, rmi  (running 중엔 삭제 못함) container stop, image는 stop  or  docker rm nx --force

 

docker rm [container name]
docker rmi [image]
# ex) docker rm nx
# ex) docker rmi nginx

 

running 상태인 컨테이너, 이미지는 터미널에서 삭제할 경우 삭제가 되지 않습니다 (docker desktop은 알림팝업이 뜨고 삭제가 가능)

 

삭제 해야할 경우 아래와 같이 하면 됩니다!

# 삭제 대상이 container 인 경우
docker stop [container name]
docker rm [container name]
# ex) docker stop nx
# docker rm nx

# 삭제 대상이 image 인 경우
docker rmi [image] --force
# ex) docker rmi nginx --force

 

 

*** container 가 실행중인 image를  --force로 삭제한 경우 "dangling" 상태 이미지로 되요

Docker에서 "dangling" 이미지는 더 이상 사용되지 않는 이미지 또는 중간 이미지 레이어를 의미합니다. 이 이미지는 컨테이너를 생성할 때 사용되었지만, 현재는 어떤 컨테이너에서도 참조되지 않는 상태입니다. 이러한 이미지는 디스크 공간을 차지할 수 있으므로, 정리하는 것이 좋습니다.

 

 

** dangling 이미지 삭제하는 방법

 

# 1. Dangling 이미지 확인
docker images -f "dangling=true"

# 2. Dangling 이미지 삭제
docker image prune

# 삭제할 것인지 확인하는 메세지  'y' 입력
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y


# 만약 확인 메세지 없이 바로 삭제하려면 '-f' 옵션 사용
docker image prune -f

 

 

 

 

 

 

 

 

 

 

 

 

출처:  https://www.youtube.com/watch?v=i-gP10UvrC8&list=PLnIaYcDMsSczk-byS2iCDmQCfVU_KHWDk&index=7

 

반응형