일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- #C++ has~a
- html multimedia
- #다차원포인터
- 토큰경제
- git flow
- #성적관리프로그램
- docker example
- #3차원배열
- #C++ 연산자함수오버로딩
- html plug-in
- #JAVASCRIPT
- html youtube
- relative path
- html object
- hyperledger transaction
- mac terminal command
- #binary
- html id
- #CallByAddress
- html5 new tag
- html charset
- #android activity
- html code
- #자바상속#자바이즈어#is~a
- border-box
- #2차원배열
- #bubbleSort
- 하이퍼레저패브릭
- #1차원배열
- html video
- Today
- Total
A sentimental robot
Docker 본문
이제 그 무겁던 VM은 이제 안녕! 도커라는 개쩌는 게 나왔다.
도커에는 이미지와 컨테이너라는 두 가지 핵심 개념이 있다.
간단하게 말해서 이미지는 내가 사용하고 싶은 프로그램이 실행되기 위해 필요한 파일과 라이브러리이고,
컨테이너는 이미지가 실행되는 독립된 공간이며 컨테이너 상에서 이미지가 실행되기 때문에 프로세스라는 개념으로 이해할 수 있다.
도커는 기본적으로 리눅스 환경을 지원한다. 리눅스 사용자는 터미널을 통해 도커를 설치할 수 있지만 mac OS와 Windows를 사용하고 있다면 자세한 내용은 공식 홈페이지를 참고하자. 나는 맥 환경에서 도커를 써보기 위해 docker.dmg 패키지를 설치해 보았다.
https://docs.docker.com/docker-for-mac/install/
설치 후 설치가 잘 되었는지 확인하기 위해 터미널에서 명령어 몇 개를 쳐보자.
$ docker version
내 컴퓨터에 설치된 도커 정보들이 쫘라락 뜰 것이다.
$ docker images
docker hub에서 다운받은 이미지들의 목록을 출력하는 명령어이다. 테스트용 hello-world라는 이름의 이미지가 설치되어있을 것이다.
Repository는 도커 이미지의 이름이고 TAG는 이미지 버전이다.
이렇게 설치 확인까지 했으면 예제를 통해 도커를 차근차근 알아가보자.
도커는 가상머신과 굉장히 유사하게 동작한다. 가상머신은 내 컴퓨터 안에 또 다른 가상의 컴퓨터이다. 가상 컴퓨터가 작동하기 위해선 OS도 설치해야겠징? 그렇기 때문에 굉장히 무겁다.
도커도 내 컴퓨터와 독립된 공간(컨테이너)에서 프로그램을 실행시키는 개념이지만 내 컴퓨터의 OS를 공유하기 때문에 훨씬 가볍고 빠르다.
솔직히 이렇게만 말해선 딱히 이해 안가고 어려울 수 있다. 나도 도커가 어렵고 추상적으로 느껴졌는데 명령어를 쳐가면서 이해하니 꽤 이해가 되었당! (도커 명령어도 외워지고 개이득 공부법)
내 컴퓨터는 맥인데 도커를 사용해 우분투의 패키지 매니저를 설치하고 사용해보자.
$ docker pull ubuntu:14.04
docker hub에서 우분투 14.04 버전의 패키지 시스템이 구성된 이미지를 받아온다. 여기서 주목해야할 점은 우분투 운영체제를 받아오는게 아니라 패키지 매니저를 다운 받는 것이다.
$docker search ubuntu
도커 허브에 전세계 개발자들이 각자의 입맛대로 구성한 우분투 이미지들을 볼 수 있다. 앞에 id가 없는 게 공식 이미지이다.
$docker run -i -t ubuntu:14.04 /bin/bash
run 명령어는 컨테이너 생성 동시에 컨테이너 상 프로그램을 실행한다. 파일을 실행 상태로 만들어 놔야 컨테이너도 동작한다. 지정한 메인 실행파일이 종료가 되면 컨테이너도 종료된다. 설치된 운영체제를 부팅하는 것과 비슷한 개념이라고 보자.
/bin/bash 로 실행할 메인 실행파일을 지정한다.
$docker ps
현재 실행 중인 컨테이너를 확인한다.
$docker ps -a
all 옵션을 줘서 종료된 컨테이너들까지 확인한다.
$docker start jello
start 명령어는 jello 컨테이너의 메일 실행 파일을 실행만 할 뿐 컨테이너로 들어가지 않는다.
jello는 도커가 자동으로 설정해준 컨테이너 이름이다.
$docker attach jello
jello 컨테이너로 들어간다.
컨테이너로 들어갔다가 exit 명령어로 bash창을 나오면 컨테이너를 빠져나오면 컨테이너는 죽는다. ctrl+p+q 단축키로 컨테이너가 살아있는 채로 컨테이너를 빠져나올 수 있다.
$docker stop jello
컨테이너 프로세스 종료하기
$docker rm jello
컨테이너 삭제
$docker rmi hello-world
이미지 삭제
Reference
https://www.youtube.com/watch?v=Bhzz9E3xuXY
'Hyperledger fabric' 카테고리의 다른 글
Docker 예제로 공부하기 (0) | 2019.07.12 |
---|---|
Mac OS 기본적인 터미널 명령어 (0) | 2019.07.12 |
Transaction Process (0) | 2019.07.11 |
Hyperledger fabric 주요 개념 (0) | 2019.07.10 |
Hyperledger fabric 구조 (0) | 2019.07.10 |