Reference


1. Docker

도커 이미지와 도커 컨테이너의 관계

fig.1

도커의 특징

도커 사용의 예

도커 사용의 의의

1) 환경 차이로 인한 문제 방지

2) 애플리케이션 구성 관리의 용이성


2. Dockerfile

예시

[ helloworld ] 쉘 스크립트

#!/bin/sh

echo "Hello, World!"

[ Dockerfile ]

FROM ubuntu:16.04

COPY helloworld /usr/local/bin
RUN chmod +x /usr/local/bin/helloworld

CMD ["helloworld"]

3. Example

1) 애플리케이션 만들기

[ main.go ]

package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r * http.Request){
        log.Println("received request")
        fmt.Fprintf(w, "Hello Docker!!")
    })

    log.Println("start server")
    server: = & http.Server {
        Addr: ":8080"
    }
    if err: = server.ListenAndServer(); err != nil {
        log.Println(err)
    }
}

2) Dokerfile 만들기

[ Dokerfile ]

FROM golang:1.9

RUN mkdir /echo
COPY main.go /echo

CMD ["go", "run", "/echo/main.go"]

3) 도커 이미지 빌드

$ docker image build -t example/echo:latest .

4) 도커 컨테이너 실행

$ docker container run example/echo:latest