docker_quick_start
-
Upload
sukjin-yun -
Category
Engineering
-
view
354 -
download
0
description
Transcript of docker_quick_start
Revision History
• 2014.11.01 - first commit
Docker 탄생 배경
• Docker를 알기 전에
• Chroot -> LinuX Container -> Docker
Problem
시스템 구성 후에 서비스가 성장함에 따라서 설정을 계속해서 변경하고 확장을 위해서 코딩 외적으로 해야할 작업이 많으며 scale out 방식으로 아키텍처를 가져갈 경우에업무부하가 기하급수적으로늘어남
Solution
• 캔트백 옹 "인터페이스와 구현을 분리하라"호스트코드와 서비스 코드를 분리하자.
Immutable System
• 호스트OS와 서비스 운영을 분리하자.
• 서비스 변경 사항이 있으면• OS레벨에서부터 교체
Docker란
• Container LinuX Container 의 강화판
• 프로세스의 독립• 프로그램을 하나 더 실행시키는 느낌• OS가 들어있지 않음
GuestOS
App
GuestOSGuestOS
App App
VM
docker 설치
• boo2dockerwindow나 mac에서 boo2docker https://github.com/boot2docker/boot2dockercentos7 sudo yum install dockerUbuntusudo apt-get updatesudo apt-get install docker.iosudo ln -sf \ /usr/bin/docker.io /usr/local/bin/docker
container 확인
• docker ps -a
docker 컨테이너 조작 명령
• start | stop | restart | attach(접속)rm 삭제
• docker rm 부여한이름• 전체 삭제• docker rm 'docker ps -
aq'
Container만들기
docker run -i -t ubuntu /bin/bash우분투 이미지를 다운받아서/bin/bash를 실행한다.이름을 넣어서 실행docker run -i -t --name my_ubuntu ubuntu /bin/bash
ubuntu 명령으로 test
docker image 만들어서 배포하기
• Prerequisitionhttps://hub.docker.com/회원가입 후 add Repository click해서 repo생성
Docker 파일 생성
• vi Dockerfile• ##contents dockerfile• FROM busybox• CMD echo 'hello docker!'
busybox가 가벼워서 선택from에 운영체제 입력하면 된다.cmd는 수행할 명령이다.
Docker 파일 build
• docker build -t 계정명/프로젝트명 .
계정명은 가입한 계정과 동일하게 프로젝트명 뒤에 (.) 잊지마세요.
build한 Docker 실행
docker login
• 쉘에서 login사이트에 push를 위해서 먼저 로그인합니다.docker login 입력
docker push
• https://hub.docker.com/에 배포
• docker push 본인id/프로젝트명