ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내가 만든 소스를 포함해서 docker 이미지 빌드하기
    Cloud 2015. 1. 30. 09:00
    반응형
    Dockerfile에 현재 디렉토리를 컨테이너의 /src 등 특정경로에 복사해 넣게 하면됨.
    그외 실행에 필요한 환경은 RUN 명령어를 이용해서 컨테이너에 설정하면 됨.
    모든 필요한 환경이 이미지에 포함되니까 나중에는 빌드된 이미지만 배포하면 실행은 문제없이 가능하게 되는구조.

    다음 package.json, index.js, Dockerfile을 하나의 디렉토리에 만든다.
    package.json
    {
    "name": "docker-centos-hello",
    "private": true,
    "version": "0.0.1",
    "description": "Node.js Hello world app on CentOS using docker",
    "author": "Daniel Gasienica <daniel@gasienica.ch>",
    "dependencies": {
    "express": "3.2.4"
    }
    }

    index.js
    var express = require('express');

    // Constants
    var PORT = 8080;

    // App
    var app = express();
    app.get('/', function (req, res) {
    res.send('Hello world\n');
    });

    app.listen(PORT);
    console.log('Running on http://localhost:' + PORT);

    Dockerfile
    FROM centos:centos6

    # Enable EPEL for Node.js
    RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    # Install Node.js and npm
    RUN yum install -y npm

    # Bundle app source
    COPY . /src
    # Install app dependencies
    RUN cd /src; npm install

    EXPOSE 8080
    CMD ["node", "/src/index.js"]

    docker 이미지 빌드하기
    docker build -t <your username>/centos-node-hello .

    빌드된 이미지 확인하기
    docker images


    이미지 실행하기
    docker run -p 49160:8080 -d <your username>/centos-node-hello

    앱의 출력 확인하기
    docker ps
    docker logs <container id>

    앱에 접속해보기
    접속할 vm의 ip 확인
    boot2docker ip

    확인한 ip로 접속
    curl 192.168.59.103:49160



    빌드된 docker 이미지를 docker hub에 배포
    docker push <container name>
    ex) docker push arisu1000/centos-node-hello

    참고



    반응형

    'Cloud' 카테고리의 다른 글

    trove 개념 잡기  (0) 2015.02.25
    openstack 개념잡기  (0) 2015.02.23
    Dockerfile 구조  (0) 2015.01.28
    간단한 docker 명령어들  (0) 2015.01.26
    맥 os x에 docker 설치하기  (0) 2015.01.23

    댓글

Designed by Tistory.