DEVOPS/DOCKER

[Docker] TIL 1일차 - 도커 엔진 시작과 종료, 도커 컨테이너 실행

연듀 2024. 3. 27. 19:46

도커 엔진 시작/종료

도커 엔진은 설치와 함께 실행되며, 동작 상태로 남아있지만

컨테이너를 실행 중이 아니라면 컴퓨터의 리소스를 거의 차지하지 않으므로 문제는 없다.

 

도커 테스크톱은 도커 엔진을 자동으로 실행하도록 설정돼있다.

도커 엔진이 한번 종료되면 모든 컨테이너는 정지 상태가 된다.

 

 

=> 도커 엔진은 컴퓨터를 켰을 때 함께 자동으로 실행할 수 있지만, 컨테이너는 그렇지 않다.

 

*Mac 환경

 

도커 엔진 시작

도커 데스크톱 애플리케이션을 클릭하면 자동으로 도커 엔진은 구동된다.

 

 

도커 엔진 종료

상태막대에서 도커를 클릭하여 "Quit Docker Desktop"을 클릭

 

 

 

컨테이너 사용 방법

 

컨테이너 사용의 기본은 도커 명령어이다.

docker <상위커맨드> <하위커맨드> <대상>

⇒ <무엇을> <어떻게> <컨테이너명 또는 이미지 명 등 구체적인 이름>

 

docker 명령어 뒤에 오는 '무엇을' '어떻게' 에 해당하는 부분을 '커맨드'라고 한다.

 

 

ex) docker container run penguin

⇒ 이름이 penguin 인 이미지를 컨테이너로 실행하라.

 

 

ex) docker image pull penguin

ex) docker container start penguin

 

 

대상 외에도 '옵션'과 '인자'라는 추가 정보도 붙일 수 있다.

 

docker 커맨드 (옵션) 대상 (인자)

 

-d: 백그라운드로 실행하라

—mode: 모드 1로 실행하라

 

ex) docker container run -d penguin —mode=1

 

 

명령어 사용

 

 

컨테이너 조작 관련 커맨드

docker container 하위_커맨드 옵션

 

하위 커맨드 내용 생략 가능 여부 주요 옵션
start 컨테이너 실행 O -i
stop 컨테이너 정지 O 거의 사용 안함
create 이미지로 부터 컨테이너 생성 O —name -e -p -v
run 도커 이미지를 받고 컨테이너 생성 및 실행 O —name -e -p -v -d -i -t
rm 정지 상태의 컨테이너 삭제 O -f -v
exec 실행 중인 컨테이너 속에서 프로그램 실행 O -i -t
ls 컨테이너 목록 출력 docker ps -a
cp 도커 컨테이너와 도커 호스트 간 파일 복사 O 거의 사용 안함
commit 도커 컨테이너를 이미지로 변환 O 거의 사용 안함

 

 

이미지 조작 관련 커맨드

docker image 하위_커맨드 옵션

 

하위 커맨드 내용 생략 가능 여부 주요 옵션
pull 도커 허브 등의 리포지토리에서 이미지를 내려받음 O 거의 사용 안함
rm 도커 이미지를 삭제 docker rmi 거의 사용 안함
ls 내려 받은 이미지 목록 출력 X 거의 사용 안함
build 도커 이미지를 생성 O -t

 

볼륨 조작 관련 커맨드

 

docker volume 하위_커맨드 옵션

 

하위 커맨드 내용 생략 가능 여부 주요 옵션
create 볼륨 생성 X —name
inspect 볼륨의 상세 정보 출력 X 거의 사용 안함
ls 볼륨의 목록 출력 X -a
prune 현재 마운트되지 않은 볼륨 모두 삭제 X 거의 사용 안함
rm 지정한 볼륨 삭제 X 거의 사용 안함

 

네트워크 조작 관련 커맨드

 

docker network 하위_커맨드 옵션

 

하위 커맨드 내용 생략 가능 여부 주요 옵션
connect 컨테이너를 도커 네트워크에 연결 X 거의 사용 안함
disconnect 컨테이너의 도커 네트워크 연결을 해제 X 거의 사용 안함
create 도커 네트워크 생성 X 거의 사용 안함
inspect 도커 네트워크의 상세 정보 출력 X 거의 사용 안함
ls 도커 네트워크 목록 출력 X 거의 사용 안함
prune 현재 컨테이너가 접속하지 않은 네트워크 모두 삭제 X 거의 사용 안함
rm 지정한 네트워크 삭제 X 거의 사용 안함

 

단독으로 쓰이는 커맨드

단독 커맨드 내용 주요 옵션
login 도커 레지스트리에 로그인 -u -p
logout 도커 레지스트리에 로그아웃 거의 사용 안함
search 도커 레지스트리를 검색 거의 사용 안함
version 도커 엔진 및 CLI 버전 출력 거의 사용 안함

 

컨테이너의 생성과 삭제, 실행, 정지

 

컨테이너 생성, 실행: docker run 커맨드

 

컨테이너를 생성하려면 이미지가 필요한데, 필요한 이미지가 없다면 이미지를 내려받는 기능도 겸하는 커맨드다.

세 커맨드의 기능을 docker run 커맨드는 모두 수행한다.

 

docker run (옵션) 이미지 (인자)

 

 

컨테이너 정지: docker stop

docker stop 컨테이너_이름

 

컨테이너를 삭제하라면 반드시 컨테이너를 정지시켜야 한다.

 

 

컨테이너 삭제: docker rm

docker rm 컨테이너_이름

 

현재 실행중인 컨테이너 목록 출력: docker ps

 docker ps (옵션)

 

-a 옵션 추가시 정지 상태의 컨테이너를 포함한 현재 존재하는 컨테이너 목록 출력

 

 

 

실습하기

컨테이너를 생성, 실행, 상태확인, 종료, 삭제해보자

 

 

docker run --name apa00ex1 -d httpd

아파치 이미지(httpd)를 이용해 apa000ex1라는 이름의 컨테이너를 생성하고 실행

 

 

docker ps

컨테이너가 실행 중인지 확인

status 가 up 이면 실행중이라는 뜻이다.

 

 

 

docker stop apa00ex1

컨테이너 종료

 

docker ps -a

컨테이너 존재하는지 확인

status 항목이 exited면 컨테이너는 존재하지만 종료된 상태라는 뜻

 

 

 

docker rm apa00ex1

컨테이너 삭제

 

 

docker ps -a

컨테이너 목록에 나오지 않으면 삭제된 것

 

 

 

 

 

참고 책:

https://www.yes24.com/Product/Goods/108431011

 

그림과 실습으로 배우는 도커 & 쿠버네티스 - 예스24

컨테이너나 도커를 도통 이해하기 어려운 분들을 위한 본격 도커 입문서!이 책은 컨테이너 기술이 어렵게 느껴지는 엔지니어나 백엔드 기술에 자신이 없는 분들을 위한 도커 입문서다. 자세한

www.yes24.com

https://haesoo9410.tistory.com/m/379

'DEVOPS > DOCKER' 카테고리의 다른 글

[Docker] 도커란 무엇인가?  (0) 2024.03.05