docker 시작하기
docker 설치
설치환경은 linux ubuntu 16.04.2 LTS 환경에서 진행한다
정상적으로 설치가 완료되었다면 이제, 버전을 확인해보자
현재시점의 docker 의 버전은 Docker version 1.12.6, build 78d1802 가 출력되는것을 확인할수있다
이미지 환경패키징
docker는 배포에 특화된 기술이라고 이전포스트 에서 언급한바 있다. 한번 만들어놓은 이미지(환경이 패키징된)는 docker가 설치된 환경이라면 쉽게 생성할수있다.
그럼 이미지파일은 어떻게 만들까 ?
vi 편집기로 Dockerfile을 열어, 환경정보를 구성한다
이제 실제 환경정보를 기술하자
jenkins 환경구성을 예로든 Dockerfile을 한번 살펴보자.
가장 상위에 FROM 이 보인다, 이부분은 상위의 이미지파일을 참조하겠다는 의미로 받아들이면 편할듯하다
필자는 얼마전까지 openjdk 를 기반으로 jenkins 환경구성을 패키징하였으나, 스프링과 같은 자바 프레임웍을 빌드하는데있어 openjdk가 좀 찝집한면이 업지않아있어 ..debian 으로 구성하였다.
물론 ubuntu와, centos등 지향하는 os를 선택해서 base로 사용할수있다.
base 이미지는 dockerhub 에서 제공하는 녀석들만 해당되므로 참고하도록하자
환경 구성에 필요한 다양한 명령어에 대한 설명은 docker document
를 참고하도록 하자 .
이미지 생성
|
|
- –tag : 이미지이름
명령어를 실행하면, docker 가 열심히 이미지를 제작하는것을 확인할수있다
생성이 모두 끝났다면,
REPOSITORY 부분의 jenkins 가 보일것이다.
만약
이미지 삭제
|
|
- -f : 이미지 강제삭제
이미지를 컨테이너로 실행
|
|
- -d : 백그라운드로실행
- -p : 포트포워딩 ex) -p 외부:내부
- –name : 컨테이너 이름 (NAMES로 바인딩)
- -v(–volume) : 호스트 디렉토리와 컨테이너 내부디렉토리 공유 ex) –volume /testData:/test (호스트 /testData디렉토리와 컨테이너 /test 디렉토리 공유, 없으면 자동생성)
- –volumes-from : 이미호스트에 연결된 컨테이너 A를 다른 컨테이너 B,C,D와 연결
컨테이너 A만 호스트와 연결하기위해 존재, B,C,D 는 A에 연결하여 사용 ex) volumes-from containerA - -e : 환경변수 세팅
실행중인 컨테이너 확인
|
|
- -a : 모든 프로세스 보기
실행중인 컨테이너 중지
|
|
컨테이너 삭제
|
|
- -f : 컨테이너 강제종료
컨테이너 접속
|
|
- -i : interactive 한 환경 구성 컨테이너와 상호작용 (input output)
- -t : 터미널과 같은 환경 조성 (tty)
- -u : 계정
견해
위에서 예로든 Dockerfile 은 필자가 직접 환경을 패키징을 한것이고, 기본적으로 dockerhub 에서 제공하는 이미지파일도 굉장히 많다 (물론 docker hub에서 jenkins도 제공한다)
각자가 추구하는 방향에 따라 docker를 사용한다면, 원하는 환경을 빠르게 구성할수있을것이라고 생각된다.
docker 에대한 명령어나, 자세한 정보를 알고자면 공식문서 를 참조하는것이 좋겠다.