728x90
반응형

전 포스트에서는 이미지에 대한 기본 지식과 빌드하는 방법을 살펴보았다.

이번 포스트에서는 이미지와 컨테이너를 관리하는 방법에 대해서 알아보겠다.

 

1. docker start vs docker run

docker run 명령어로 컨테이너를 실행할 때는 터미널이 더이상 명령어를 입력할 수 없는 것을 볼 수 있었다. 

docker start를 사용하면 백그라운드에서 컨테이너가 실행되기 때문에 별개로 터미널에서 다른 작업을 할 수 있다.

 

docker run 명령어로 컨테이너를 실행하면 터미널에서 실시간으로 컨테이너의 console.log 출력 결과를 확인할 수 있다.

이를 attached 모드라고 한다. 또한 컨테이너가 새로 생성되면서 실행까지 된다.

 

1. 만약 이미 실행중인 컨테이너에 연결하고 싶으면 docker  attach 를 사용하면 된다.

2. 컨테이너의 이미 지나간 로그 기록을 보고 싶으면 docker logs 라는 명령어도 존재한다. -f 옵션을 주면 attatch 까지 가능하다.

3. docker start 를 attatch 모드로 실행하고 싶으면 docker start -a 옵션을 주면 된다.

 

 

2. 컨테이너 삭제하기

컨테이너를 중지한 뒤 삭제를 안하고 새로 만들고 하다보면 언젠가 계속 쌓이게 될 것이다. 때때로 이 목록을 정리해야 될 필요가 있다.

docker rm '컨테이너이름' 명령어로 컨테이너를 삭제할 수 있는데 이는 컨테이너가 실행중이면 오류가 발생한다.

때문에 실행중이면 컨테이너를 종료하고 제거를 해야한다.

 

3. 이미지 삭제하기

이미지를 삭제할 때에는 docker rmi '이미지ID' 명령어를 사용한다. 다만 한 가지 유의사항이 있다면 해당 이미지를 가지고 있는 컨테이너가 한 개라도 존재할 경우엔 이미지 삭제가 불가능하다. 때문에 컨테이너를 먼저 삭제한 뒤 이미지를 삭제해야한다.

 

다만 docker image prune 이라는 명령어도 존재하는데, 이는 사용되지 않는 모든 이미지를 제거할 수 있게 해준다.

 

4. 중지된 컨테이너 자동으로 제거하기 

이미지로 docker run 을 실행하여 만들어진 컨테이너를 중지될 때 자동으로 제거하게끔 만드는 명령어가 있다.

docker run -p 3000:80 -d --rm '이미지id'

 

5. 컨테이너와 이미지에 이름 지정 & 태그 지정하기

 컨테이너의 자동 생성된 이름을 사용하기에는 불편함이 있을 수 있다. ( 까먹거나 너무 길 경우에 )

docker run -p 3000:80 -d --rm --name teepo '이미지id'

 

이미지에는 이름과 태그를 설정할 수 있는데,

name : tag 이런식으로 설정된다. ( tag 는 부 주제로 버전 등을 나타낼 수 있다)

docker build -t teepo:latest -> latest는 최신 버전임을 나타냄, 숫자도 가능

 

docker images 명령어로 이미지들을 확인할 수 있다.

 

 

728x90
반응형

+ Recent posts