기본 콘텐츠로 건너뛰기

라벨이 docker인 게시물 표시

[docker] docker hub를 이용한 이미지 관리

지금까지는 로컬에서 이미지를 생성을 하고 로컬에서만 해당 이미지를 사용하는 방식으로 진행을 하였다. dockerfile 작성 apt-get update apt-get upgrade apt-get install curl mkdir /home/pjt3591oo cd /home/pjt3591oo curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh bash nodesource_setup.sh apt-get install nodejs apt-get install git apt-get install vim npm install express-generator -g npm install supervisor -g npm install nodemon -g npm install forever -g curl, node.js, git, vim을 설치한후 필요한 node 모듈을 설치를 하는 명령어이다. 만약 서버를 갑자기 여러대로 늘릴경우 위 명령어를 해당 서버마다 다 쳐주어야 한다. 하지만 도커 허브를 사용하면 이러한 문제를 해결을 할 수 있다.  docker hub는 git hub랑 비슷하다(깃이랑도 연동에서 사용할 수 있다.) 우선  https://hub.docker.com 위 사이트로 가서 가입을 해준후 로그인을 한다. 가입을 해준후 로그인을 하면 이러한 모습이 된다. 3개의 저장소 공간이 보인다.(처음 로그인을 했다면 아무런 저장소도 생성이 되지 않았을 것이다.) 우측 상단에 create repository + 버튼을 누르면 저장소를 생성을 할 수 있다.(참고로 private는 계정당 하나씩만 생성이 가능하다.) node라는 이미지가 있다 해당 이미지는  위의 설치 파일들을 전부 받아놓은 상태이다  사이즈는 650Mb정도 나온다. 이제 해당

[docker] 도커 이미지 생성

도커에서는 이미지를 만드는 방법이 2가지가 있다. 1. 컨테이너로 부터 이미지 만들기(snapshot) $ docker commit [options] 2. Dockerfile로 부터 이미지 만들기 $ docker build [option] 1. 컨테이너로  부터 이미지 생성하기 이미지 파일을 만들어 보자. $ docker commit -a "pjt " -m "commit test" hello-world node-test:0.1 정상적으로 이미지가 생성이 되었다. 이제 해당 이미지로 컨테이너를 만들어보자. $ docker run -p 3000:30000 -i -t --name node-test-server node-test:0.1 /bin/bash 먼저 설치한 컨테이너와 똑같다. 2.  Dockerfile을 이용하여 이미지 생성 1 2 3 FROM ubuntu:latest MAINTAINER pjt  < pjt3591oo@naver.com > cs $ docker build --tag dockerfile-node-test:0.1 . Dockerfile에 작성한것이 한줄한줄 실행이 되면서 설치가 완료되었다. 원래는 패키지좀 설치하고 실행하려고 했는데 계속 에러가 뜨면서 실행이 되지 않아 ubuntu 최신 버전만 받아와서 이미지를 만들었다. 정상적으로 이미지가 생성이 되었다. 이미지 생성하는 동안 하나의 테스트를 진행을 해보았다. original host와 container host의 포트중첩이 가능할까??? 호스트 서버로 3000번을 30000번 포트로 포워딩이 되어있다. 이제 원래의 os에서 3000번 포트를 키면 어떻게 될까? 충돌이 일어난다. 

[docker] 도커 설치, 호스트 생성 및 접속

도커를 활용하여 가상 호스트에 서버를 올려보도록 하겠다. 도커란 ?  os를 설치하여 여러대의 os를 두는것이 아닌 이미 설치된 OS를 공유를 하여 프로그램만 설치를 하여 기존의 가상화 기술보다 많이 가벼운 기술을 말한다. 또한 필요한 프로그램을 미리 설치해서 배포만 하면 된다. 도커는 이러한 것들을 관리를 해주는 툴이다.(일단 자세한 설명은 생략을 하겠다.) 도커에서 이미지를 이용하여 생성된 하나의 프로그램을 컨테이너(호스트)라고 한다, $ sudo wget -qO- https://get.docker.com/ | sh $ sudo apt-get install docker.io 하면 설치가 끝이난다. docker는 모든 명령어를 관리자 권한으로 실행이 되기 때문에 관리자 계정으로 로그인을 하는것이 편할것이다.(꼭 할필요는 없다) $ docker images 설치된 이미지가 나온다. 아마 도커를 설치한 후 바로 명령어를 치면 hello-world라는 이미지가 뜰것이다.(무시해도 된다.) $ docker pull ubuntu:lastest pull이라는 명령어를 통해 이미지를 받아올 수 있다. ubuntu의 가장 최신 버전의 이미지를 받는 것이다. mongo centos ubuntu 이미지를 받았다. hello-world는 처음 도커가 설치됬을때 자동으로 생성되는 이미지이다 신경쓰지 않아도 된다. hello는 직접 이미지를 생성한 것이다. 도커는 저렁 기본 os를 가지고 필요한 프로그램을 설치 한 뒤 이미지 파일로 만들수 있다. 다시 말하면 서버 프로그램에서 각종 필요한 툴, 서버 프로그램을 이미지 파일로 만들었다가 다른 환경에서 해당 이미지 파일만 가지고도 서버를 바로 실행시킬 수 있다. 이제 저 이미지를 이용하여 컨테이너(호스트)를 생성을 해보겠다. 컨테이너를 생성하기 앞서 $ docker ps 어떤 컨테이너가