무민은귀여워

Docker 란? 본문

IT/기타

Docker 란?

moomini 2018. 9. 18. 00:44
반응형

Docker 란?


1.  Docker란?

- 경량화 된 개발환경
- 리눅스 기반의 컨테이너 런타임 오픈소스
- Virtual Machine과 유사하지만, 훨씬 가볍다 ( Docker는 VM처럼 하드웨어를 가상화 하는 것이 아니라, 커널은 Host OS를 그대로 사용하되, Host OS와  ontainer OS의 다른 부분반 컨테이너 내에 같이 Packing  한다. )

2. Docker 사용하기

- Docker 설치하기 

※ Mac에서 Docker의 설치 ( 회원가입 후 Docker.dmg 다운 )

설치 후 상단바에 고래 아이콘

설치 후 상단바에 고래 아이콘이 추가되어 있다. 로그인 후 콘솔에서 다음 명령어로 설치 확인


1
docker version
cs


- Docker-compose 설치하기

1
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -/usr/local/bin/docker-compose
cs

3. Container 실행하기

Docker를 실행하는 명령어


1
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
cs


자주 사용하는 옵션

옵션설명
-ddetached mode 흔히 말하는 백그라운드 모드
-p호스트와 컨테이너의 포트를 연결 (포워딩)
-v호스트와 컨테이너의 디렉토리를 연결 (마운트)
-e컨테이너 내에서 사용할 환경변수 설정
–name컨테이너 이름 설정
–rm프로세스 종료시 컨테이너 자동 제거
-it-i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
–link컨테이너 연결 [컨테이너명:별칭]
예1) ubuntu 16.04 container
1
docker run ubuntu:16.04
cs

run 명령어를 사용하면 사용할 이미지가 저장되어 있는지 확인하고 없다면 다운로드(pull)를 한 후 컨테이너를 생성하고 시작한다.

위 예제는 정상 실행되지만 뭘 하라고 명령어를 전달하지 않았기 때문에 컨테이너는 생성되자마자 종료된다.
컨테이너는 프로세스이기 때문에 실행중인 프로세스가 없으면 컨테이너는 종료된다.

예2) /bin/bash 명령어를 입력해서 ubuntu:16.04 컨테이너를 실행

1
docker run --rm -it ubuntu:16.04 /bin/bash
cs


컨테이너 내부에 들어가기 위해 bash 쉘을 실행하고 키보드 입력을 위해 -it옵션을 준다.

추가적으로 프로세스가 종료되면 컨테이너가 자동으로 삭제되도록 --rm 옵션도 추가.



예3) redis container


1
docker run --1234:6379 redis
cs



-d 옵션을 주었기 때문에 컨테이너를 실행하자마자 컨테이너의 ID를 보여주고 바로 쉘로 돌아옴. 컨테이너는 종료된 것이 아니라 백그라운드 모드로 동작하고 있음.

-p 옵션을 이용하여 호스트의 1234 포트를 컨테이너의 6379 포트로 연결하고 localhost 의 1234 포트로 접속하면 redis를 사용할 수 있음.

호스트의 포트만 다르게 하면 하나의 서버에 여러개의 redis 서버를 띄우는 것도 간단하다.




반응형
Comments