[Docker] 도커 파일 생성하고 업로드하기

이수혁/Lee_Su_Hyeok·2023년 8월 12일
0

Docker

목록 보기
2/2
post-thumbnail
post-custom-banner

서론

프로젝트 진행 도중 Docker가 필요하게 되었다.
그러나, 대부분의 게시글들은 잡다한 정보가 혼란을 주어 Docker 이해가 쉽지 않았다.
따라서, 초심자도 이해하기 쉽도록 필요한 정보만 깔끔히 정리하고자 노력하였다.


도커에 대한 기본 개념은

이전의 게시글
https://velog.io/@leestana01/Docker-1-BaseConcept
을 참고해주시기 바랍니다.


서버 관리자에게 도커 파일을 생성하여 제공하고 싶으신 경우에도 이 게시글을 참고하시면 됩니다 :)
이 게시글은 "서버"에 도커를 설정하고 실행하는 과정을 포함하지 않습니다.

프로젝트를 도커로!

내가 개발한 프로젝트(스프링부트, 리액트, 플러터, etc...)를 Docker에 업로드 하고 싶다.

어떻게 할까?

도커의 구성단계

지난 포스팅에서 언급하였듯이,
도커는 쉽게 아래의 단계로 구성된다.

소스파일 -> Image 파일 -> Container 실행

즉, 우리는

1. '내 컴퓨터'에서 만든 <소스 파일 (프로젝트)>을
2. <Image 파일>로 변환하고
3. 서버에 보내주면 끝난다. (DockerHub 업로드로 대체. <Container>는 서버에서 실행)

따라서, 이 글에서는 다음을 안내한다.

  • Image 파일 생성하는 법
  • DockerHub에 Image 파일을 올리는 법

[사전 단계] 도커 설치

서버에서 Docker를 실행하지만,
내 컴퓨터에서도 Image를 만들거나 만든 Image를 push하려면 Docker가 필요하다.

도커 다운로드 사이트 : https://www.docker.com/

1. 도커 사이트에 접속한다.
2. 다운 받는다.
3. 끝났다.

따로 건들 것도 없이, 그냥 진행하면 Docker 설치가 끝난다.

오류가 발생한다면?

Docker는 기본적으로 Windows에서 작동하지 않아,
WSL2를 이용해 가상 리눅스 환경에서 실행된다.

에러 메시지의 링크를 따라간 뒤 똑같이 따라하거나,
WSL2를 정상적으로 설치하면 오류가 해결된다.


[사전 단계] 도커 허브 세팅

도커 허브 사이트 : https://hub.docker.com/

회원가입이 너무나도 심플해서 몇 초면 끝난다.
(계정 메일 인증까지는 해줘야 한다.)

로그인 완료 후 Create repository를 누른다.
이후 Repository Name에 프로젝트 이름을 작성하고, Create를 누른다.

도커 허브의 세팅이 완료되었다.


Image 파일 제작

DockerFile 제작

내 프로젝트의 최상단 폴더로 가보자.

예를 들어, SpringBoot로 제작된 프로젝트의 최상단은 다음과 같이 구성되어있다.

이 최상단 폴더에 Dockerfile 라는 파일을 생성한다.
(이 때, 확장자는 존재하지 않는다.)

Dockerfile 안에 들어갈 내용은 따로 고민할 필요가 없다.
구글에 '내 프로젝트 언어' + dockerfile 이라고 검색해보자.
(ex : 스프링부트 dockerfile)

그 내용을 그대로 저 안에 넣으면 된다.

단, 일부 설정은 변동이 생길 수 있다.
가령 스프링부트의 경우,

  • JAVA 버전이 맞는지
  • Gradle / Maven 이 본 프로젝트와 일치하는지

등을 확인해야한다.
대부분의 언어는 그냥 보이는대로 복붙하면 문제되지 않을 것이다.

완성된 SpringBoot 3.X 용 DockerFile 예시

FROM openjdk:17
CMD ["./gradlew", "clean", "build"]
ARG JAR_FILE_PATH=build/libs/*.jar
COPY ${JAR_FILE_PATH} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

사실 위의 명령어들이 무엇을 뜻하는지 알 필요도 있다.
그러나 초보자 입장에서는 당장 구동되는 것이 우선이므로, 이는 여기서 다루지 않겠다.

Image 파일 빌드(제작)

Terminal로 진입 하여 해당 폴더로 진입하자.
이후 다음의 명령어를 친다.

docker build -t 도커허브계정명/프로젝트이름(레포지토리 이름) .
ex)
docker build -t leestana01/mytestproject .

이제 이미지가 제작되었다.
이는 윈도우의 Docker 프로그램에서도 확인할 수 있다.

[참고]
만약
docker build -t leestana01/mytestproject .
처럼 생성한다면,
이 파일의 버전은 자동으로 latest가 된다.
특정 버전으로 설계하고 싶다면,
프로젝트 이름 뒤에 :버전명을 입력하면 된다.
ex : docker build -t leestana01/mytestproject:test1 .


DockerHub에 업로드

마찬가지로 Terminal에서 계속 작업한다.

  1. 우선 도커허브에 로그인하자.
    docker login 입력
    이후 로그인 진행

  2. docker push 도커허브계정명/프로젝트이름
    (버전명 존재시 버전명까지 필수)

드디어 도커 이미지 생성 및 push까지 끝났다!


최종 정리

  1. 도커를 설치한다.
  2. 도커 허브에 가입하여 Repository를 생성한다.
  3. 내 프로젝트 최상단에 DockerFile 파일을 생성한다.
    (이는 검색해서 찾고, 수정할 부분은 수정한다.)
  4. 터미널로 내 프로젝트 루트 폴더에 진입한다.
  5. docker build -t 도커허브계정명/프로젝트이름(레포지토리 이름) . 을 이용하여 Image를 생성한다.
  6. docker login 입력해서 Docker Hub에 로그인한다.
  7. docker push 도커허브계정명/프로젝트이름 로 Docker Hub에 업로드한다.
profile
Back-End( Spring Boot ) 기반 FullStack 개발자
post-custom-banner

0개의 댓글