도커는 vmware, virtualbox와 같은 가상 머신처럼 독립된 실행환경을 제공하면서도, 컴퓨터에 직접 애플리케이션을 설치한 것과 같이 빠르고, apt, npm, pip 처럼 명령어 한줄로 원하는 앱이 포함된 실행환경을 손쉽게 설치할 수 있는 환상적인 개발환경을 제공합니다.
도커개념이 많이 헷갈려서 좀 더 쉽게 비유적으로 설명해보겠습니다.
우리가 어떤 프로그램이 필요할 때 app store에서 프로그램을 찾습니다.
이것과 비슷하게 우리는 Docker hub 라는 레지스토리(저장소)에서 필요한 소프트웨어를 찾습니다.
app store에서 다운로드 받아서 컴퓨터에 저장한 것을 Program 이라고 부르는 것처럼
Docker hub에서 다운로드 받은것을 Image라고 부릅니다.
그리고 program을 실행하면 Process라는 것이 동작하는 것처럼 image를 실행한 것을 Container라고 합니다.
도커 허브에서 이미지를 다운받는 행위를 PULL이라고 합니다.
그리고 이미지를 실행시키는 행위를 RUN이라고 합니다.
pull 명령어를 사용하여 도커허브에 있는 이미지를 다운받고 run명령어를 사용하여 이미지가 컨테이너가 되고 그 컨테이너가 실행되면서 컨테이너 안에 포함되어 있는 프로그램들이 실행이 되는겁니다.
저는 docker공식 사이트에 들어가서 윈도우용 도커 데스트탑을 설치하여 사용중입니다.
그래서 cmd창을 통해 명령어를 실행시키고 있지만 VMware, virtualbox같은 가상머신을 사용하셔도 상관없습니다.
https://docs.docker.com/get-docker/
이미지 다운
이제 도커허브에서 이미지를 다운로드 받아보겠습니다.
실습방법은 이해하기 편하게 GUI, CLI 두 방법으로 진행하겠습니다.
아파치 웹서버를 실행시키기 위해서 아파치 웹서버가 설치되어 있는 컨테이너를 도커허브에서 찾아 다운받겠습니다.
도커허브사이트로 들어가서 httpd 이미지를 다운받습니다.
필요한 링크는 더보기란에 넣어두겠습니다.
사진처럼 docker pull httpd 명령어를 사용하여 httpd 이미지를 다운받을 수 있습니다.
저는 윈도우에 cmd창으로 docker image를 다운받아 보겠습니다.
// 사용문법
//docker pull [OPTIONS] NAME
docker pull httpd
// docker images 명령어를 사용하여 내가 다운받은 도커 이미지들 목록을 확인할 수 있습니다.
docker images
이렇게 httpd 이미지를 다운받았습니다.
혹시 이렇게 CLI로 확인하기가 어려우시면 GUI로도 다운받은 이미지를 확인할 수 있습니다.
이렇게 도커데스크탑을 활용하여 다운받은 이미지 목록을 확일할 수 있습니다.
컨테이너 실행 & 정지 & 삭제
다운받은 이미지에 run명령어를 사용하여 컨테이너를 실행시키는 방법을 알아보겠습니다.
컨테이너 실행 후 새로운 cmd창을 열어서 컨테이너 목록을 확인했습니다.
새로운 컨테이너를 다시 실행할 때 또한 새로운 cmd창을 열어 진행하였습니다.
// 기본문법
// docker run [OPTIONS] IMAGE [COMMAND]
// httpd기반으로 컨테이너가 만들어지고 그 컨테이너가 실행된다.
docker run httpd
// 만든 컨테이러를 보는 명령어
docker ps
// 하나의 이미지로 여러개의 컨테이너를 만들 수 있습니다.
// test라는 이름으로 httpd컨테이너를 만듭니다.
docker run --name tset httpd
docker ps
컨테이너 정지
//사용중인 컨테이너를 끄고 싶을 때 사용한다.
// docker stop [OPTIONS] CONTAINER [CONTAINER...]
// 컨테이너 이름을 여러개 입력하여 한꺼번에 여러개의 컨테이너도 정지가 가능하다
docker stop test
//정지한 컨테이너는 더 이상 ps명령어로 목록에 안나온다.
//그러나 삭제된 것은 아니고 중지된 상태이다.
docker ps
// docker ps -a (all)명령어로 모든 컨테이너 목록정보를 확인할 수 있다.
docker ps -a
// 컨테이너 이름뿐만 아니고 컨테이너ID의 앞3글자로 정지 및 삭제가 가능하다
docker stop 67e
컨테이너 삭제
// 컨테이너 삭제
//docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm test
docker rm 67e
이미지 삭제
// 이미지 삭제
//docker rmi [OPTIONS] IMAGE [IMAGE...]
docker rmi httpd
도커데스크탑을 이용하여 GUI버전으로도 사용이 가능합니다.
이렇게 도커테스트탑으로 이미지를 실행시켜서 컨테이를 실행시킬 수 있습니다.
간단하게 컨테이너와 이미지도 삭제할 수 있습니다.
오늘은 도커의 간단한 개념 및 명령어들을 사용해봤습니다.
감사합니다. :)