프로그래밍/IT 이것저것

docker container, image run

이자다 2023. 8. 22. 17:38
반응형

docker는 한 이미지로 여러 컨테이너를 생성 가능하다.

 

구조도를 표현하자면

 

image. ----- run ----> container

 

로 표현 가능하겠다. 

 

image로 여러개의 컨테이너를 생성 가능하다.

 

 

 

docker context ls 명령어를 통해 현재 실행중인 context가 데스크톱 앱임을 확인했다.

 

docker run httpd 명령어로 httpd 이미지의 컨테이너를 생성했다.

 

 

 

docker ps 명령어로 현재 실행중인 컨테이너를 조회했다.

 

httpd 이미지의 컨테이너가 실행중이고 이름은 지정하지 않아 임의로 'friendly tesla'라는 이름이 붙었다.

 

 

 

다른 터미널에서 ws2 라는 이름을 지정하여 httpd 이미지의 컨테이너를 생성한다.

 

 

 

docker ps 로 조회했다.

 

ws2, friendly tesla 라는 두 개의 컨테이너가 조회된다.

 

 

 

docker stop ws2 명령어를 사용했다.

 

ws2가 실행중이던 터미널이 실행을 멈췄다.

 

 

 

docker ps 명령어를 사용해도 ws2 컨테이너가 조회되지 않는다.

 

하지만 조회되지 않는다고 삭제된 게 아니다. 여전히 존재하는 상태다.

 

docker stop ws2 명령어는 단순히 ws2 컨테이너를 멈출 뿐이지 삭제되지 않는다.

 

 

 

docker ps -a 명령어로 -a(all) 옵션을 주니 현재 작동을 멈춘 ws2 컨테이너가 조회된다.

 

docker start ws2 명령어로 다시 실행시킨다.

 

 

 

이후 docker ps 명령어로 조회하면 다시 ws2, friendly_tesla가 조회된다.

 

이제 컨테이너를 삭제 시켜보자.

 

docker rm ws2 명령어로 명령어를 삭제시킬 수 있다. rm은 remove의 약자다.

 

명령어를 실행시키면 에러가 나온다. 현재 ws2가 실행중이기 때문이다.

 

docker stop ws2 명령어로 ws2를 중지시킨 후 다시 docker rm ws2 명령어를 실행하면 정상적으로 삭제가 된다.

 

만약 중지 과정 없이 삭제시키고 싶다면 docker rm --force [컨테이너명] 명령어를 사용하면 된다. force 옵션은 무엇을 강제하는 옵션이다. 이 경우엔 강제 삭제가 되겠다.

 

docker rm --force friendly_tesla 명령어를 입력하면 friendly_tesla 컨테이너가 삭제된다.

 

 

 

friendly_tesla 컨테이너를 실행중인 창이 컨테이너가 삭제되어 중지 됐다.

 

 

 

docker ps -a 명령어로 모든 컨테이너를 조회하나 조회되는 이미지가 없다.

 

 

 

이제 httpd라는 이미지를 삭제해보자.

 

데스크톱 앱에서 삭제하려면 휴지통 모양의 버튼을 클릭하면 삭제가 가능하다

 

 

 

터미널에서 삭제하려면 rmi(remove image) 명령어를 사용하면 된다.

 

docker rmi httpd 로 httpd 이미지를 삭제한다.

 

명령어 실행 후 docker images 명령어로 이미지를 조회해도 조회되는 이미지가 없다.

 

 

 

데스크톱 앱에서도 이미지가 조회되지 않는다.

 

정상적으로 삭제되었다.

반응형