본문 바로가기
coding/Docker

[Docker]도커 시작하기

by 꾸준한 개발 2022. 3. 11.
반응형

1. Doker 란?

  • 어플리케이션을 패키징할 수 있는 tool입니다. Container에 version, system tool과 dependencies을 저장해놓고 어느 컴퓨터 어느 운영체계에서도 나의 프로젝트를 운영할 수 있게 해주는 tool이라고 생각합니다.
  • container을 만들때 필요한 3가지
  1. Dockerfile
  2. Image
  3. Container

2. Doker 다운로드.

  • 도커 홈페이지에 접속해서 docker를 다운받아주시면 됩니다. 컴퓨터 운영체계에 맞는 docker를 다운받아 주시면 됩니다.

3. Dockerfile

  1. dockerfile를 생성하기전에 전에 만들어 놓은 express 프로젝트를 활용해서 dockerfile를 생성해보겠습니다. express를 사용해 보지 않은분들은 docker를 시작하기전에 한번 확인해 보시면 좋을거 같아요.
  2. Visual studio에서 extension에서 docker를 install 해주기.


3. 프로젝트 상단에 Dodcker 파일을 생성해줍니다.

 

  1. Dockerfile 작성하기.
  • "FROM" 설정하기
    • 처음에는 FROM을 사용해서 baseImage를 베이스로 사용합니다. 하지만 노드에서는 따로 제공(node:16-alpine)해주기때문에 쉽게 사용할 수 있습니다.(node.js version 링크)
  • "WORKDIR"
  • WOKRDIR을 사용해서 이 프로젝트를 어디서 실행할지 명시해줄 수 있습니다.
  • "COPY"
  • COPY는 우리 프로젝트를 복사해 오는 명령어 입니다.
  • "RUN"
  • RUN을 이용해서 package json을 install 해줄 수 있습니다.
  • "ENTRYPOINT"
  • 마지막으로 ENTRYPOINT를 이용해서 프로젝트를 실행해 줍니다.

  • node.module은 용량이 커서 build하기전에 미리 삭제해주는것이 좋습니다.

6. build & push

Build 하기

  1. Docker hub 회원가입 and login하기
  2. Docker hub에 가입을 해줍니다.
  3. terminal에서 login하기
$ docker build -f Dockerfile -t 프로젝트명:version . <-  .은 여기 위치라는 뜻 
$ docker build -f Dockerfile -t test-example:1.0.0 .

    1. Docker hub에서 create repository

docker hub repository

내 컴퓨터에 있는 프로젝트를 dockerhub에 연동 시키기

  • // docker 프로젝트 확인
    $ docker images
    
    $ docker tag (Local에서 만든 프로젝트 명) (docker repo)
    $ docker tag test-example:1.0.0 kkaa81/test:1.0.0
     
  •  

Docker hub에 올리기

  $ docker push (docker repo)
  $ docker push kkaa81/test:1.0.0

 

Docker pull

내 repository에 있는 프로젝트를 가져올때 pull을 사용해줍니다.

$ docker pull username/프로젝트명:version
$ docker pull kkaa81/test:1.0.0

Docker Run

docker 이미지를 컨테이너로 돌리게 되면 docker 컨테이너프로그램이랑 도커를 host machine port를 맞춰 바인딩 해주셔야합니다.

$ docker run -d -p 외부포트:내부포트 프로젝트명
$ docker run -d -p 8888:8888 test:1.0.0

 -d : 내가 멈추라고 할때까지 영구적으로 프로젝트를 실행 해줘 명령어

 -p : 바인딩 해줄 명령어

 

이번에는 간단한 express프로젝트를 dockerfile를 만들어서 Image로 빌드하고 container에 올리는 연습까지 해보았습니다!
감사합니다.

반응형

'coding > Docker' 카테고리의 다른 글

[Docker]맥북 M1 빌드 오류(linux/arm64, linux/amd64)  (0) 2022.03.13

댓글