리눅스 환경에서 도커 설치하기

minkoong·2023년 4월 18일
0
post-thumbnail

패키지 목록 업데이트하기

$ sudo apt update -y

apt가 HTTPS를 통해 저장소를 사용할 수 있도록 패키지 설치하기

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

도커 패키지 저장소를 apt에 등록하기

$ sudo curl -fsSL http://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
$ sudo apt-repository \
> "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
> $(lsb_release -cs) \
> stable "

설정할 버전을 지정해 도커 CE 설치하기

$ sudo apt install -y docker-ce

도커 이미지 내려 받기

$ sudo docker image pull gihyodocker/echo:latest

curl 명령으로 접근하기

$ sudo curl http://localhost:9000/
Hello Docker!!

Go 언어로 만든 간단한 웹 서버를 도커 컨테이너에서 실행시키기

$ sudo vi 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.ListenAndServe(); err != nil { 
                log.Println(err)

        }
}
- main.go 파일에 코드 작성하기
- 모든 http 요청에 대해 "Hello Docker!!" 응답 전송
- 포트 8080로 요청 받는 서버 애플리케이션으로 동작
- 클라이언트로 요청 받으면 received request 메시지를 표준으로 출력

Dockerfile 작성하기

$ cat Dockerfile 
From golang:1.9

RUN mkdir /echo
COPY main.go /echo

CMD ["go", "run", "/echo/main.go"]
- FROM/RUN: 인스트럭션(명령)
- FROM: 도커 이미지의 바탕이 될 베이스 이미지 지정
- RUN: 도커 이미지를 실행할 때 컨테이너 안에서 실행할 명령 정의
- COPY: 도커가 동작 중인 호스트 머신의 파일/디렉터리를 도커 컨테이너 안으로 복사
- CMD: 도커 컨테이너를 실행할 때 컨테이너 안에서 실행할 프로세스 지정

도커 이미지 빌드하기

$ sudo docker image build -t example/echo:latest .
- docker image build: 도커 이미지를 빌드하기 위한 명령
- -t: 이미지명 지정
- 빌드를 실행하면 베이스 이미지를 내려받고 RUN/COPY 인스트럭션에 지정된 명령이 단계적으로 실행됨
- . : 도커 파일의 경로 지정

도커 컨테이너 실행하기

$ sudo docker container run example/echo:latest
- -d : 백그라운드로 실행하기

0개의 댓글

관련 채용 정보