CEOS 2주차 - Docker란?

off_sujin·2022년 5월 1일
0

CEOS

목록 보기
2/6

CEOS 15th 백엔드 2주차 과제 공부기록

Docker에 대해서 알아보기

Docker란?

도커는 컨테이너를 기반으로 하여 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 도구입니다.

VM 과의 차이점

오른쪽에 보이는 VM은 호스트 OS 위에 게스트 OS를 가상화하여 사용하기 때문에 오버헤드가 많아지고 속도문제가 발생하게 됩니다.

하지만 왼쪽과 같은 Docker는 호스트 OS 위에 게스트 OS를 분리하는 것이 아니라, 프로세스를 분리하여 사용합니다.

따라서 VM 처럼 완전히 분리된 환경을 이루면서도 오버헤드를 줄일 수 있습니다.

image와 container

docker hub는 우리가 사용하는 app store처럼 다양한 프로그램들을 다운로드, 업로드 할 수 있는 공간입니다.

image는 app store에서 다운받는 프로그램과 같은 의미입니다.

container는 프로그램에서 실행하는 프로세스라고 볼 수 있습니다.

하나의 이미지에서 여러 개의 컨테이너를 생성할 수 있고, 각각의 컨테이너는 독립된 환경을 가지고 있기 때문에 서로 영향을 받지 않습니다.

image pull

docker hub에서 이미지를 다운받는 것을 pull이라고 합니다.

https://hub.docker.com/
위의 docker hub 사이트에 접속하면 다양한 이미지들을 확인할 수 있습니다.

docker pull httpd 명령어를 사용해서 아파치 웹 서버 이미지를 pull 해보겠습니다.

docker images 로 아래처럼 이미지가 잘 받아졌는지 확인할 수 있습니다.

container

생성

docker run httpd

실행 중인 container

컨테이너가 제대로 만들어졌는지 확인하려면 ps 라는 명령어를 이용합니다.

위의 결과처럼 httpd 이미지로 컨테이너가 하나 만들어진 것을 확인할 수 있습니다.

이름 지정

docs에서 option 카테고리에 가보면 다양한 옵션을 찾을 수 있습니다.

그 중 --name 이라는 옵션을 주면 컨테이너의 이름을 지정할 수 있습니다.

만약 컨테이너 이름을 web-server라고 하고싶다면 명령어는 다음과 같습니다.

docker run --name web-server httpd

실행 중지

docker stop web-server를 이용해서 컨테이너를 끌 수 있습니다.

ps 명령어를 이용해서 컨테이너가 실행되고 있는지 확인합니다.

컨테이너 리스트에서 ws1 컨테이너가 사라진 것을 확인했습니다.

재실행

이미 만들어놓은 컨테이너를 다시 시작하고 싶다면 start 를 사용합니다.

docker start web-server

ps 명령어에 -a 옵션을 지정하면 지금까지 만들어둔 사용가능한 컨테이너를 확인할 수 있습니다.

제가 stop시킨 ws1도 있습니다.

삭제

컨테이너를 지우고 싶다면 rm을 사용합니다.

docker rm ws1

간혹 에러가 뜨고 제대로 삭제되지 않는 경우가 있습니다.

이럴 때에는 --force 옵션을 주면 강제로 삭제할 수 있습니다.

images 삭제

이미지는 rmi 라는 명령어로 삭제할 수 있습니다.

docker rmi httpd

명령어 정리

docker pull IMAGE : IMAGE pull

docker rmi IMAGE : IMAGE 삭제

docker images : IMAGE 리스트 보기

docker run --name CNAME IMAGE : IMAGE를 CNAME이라는 이름으로 컨테이너 생성

docker ps -a : 존재하는 컨테이너 리스트 보기

docker ps : 실행 중인 컨테이너 리스트 보기

docker stop CONTAINER : 컨테이너 실행 중지

docker start CONTAINER : 컨테이너 실행

profile
학습 중..

0개의 댓글