Docker 설치부터 Docker hub 이미지 push까지

장창현·2023년 10월 29일
0

CS공부하기

목록 보기
2/2
post-thumbnail

대학 친구와 취업 전까지 각자 특정 주제에 대해 학습하고 정리해봄으로써 각자의 것으로 만들기 위해 하는 정리입니다!
부족하거나 잘못된 부분이 있다면 댓글을 남겨주세요!

Docker


지난번 포스팅에서 Docker가 왜 필요하고, 왜 만들어졌고,무엇인지를 알아보았다.
이번에는 직접 Docker를 설치하고, Docker를 이용해 이전에 만든 프로젝트를 이미지로 만들어 Docker hub에 업로드하려고 한다.

WSL2 설치

WSL2란 쉽게 윈도우에서 리눅스를 사용하기 위한 도구라고 생각하면된다.
바로 설치과정에 들어가겠습니다.
이를 위해 먼저 PowerShell을 관리자 권한으로 실행하고 아래의 명령어를 입력한다.

PowerShell
winver

해당 명령어를 통해 자신의 window버전을 확인한다.
왠만하면 대부분이 거의 최신 버젼을 쓰실거라 믿기때문에 이부분은 넘어가겠습니다.
업데이트가 안되신 분들은 업데이트를 하고 진행해주세요!

  1. "Linux용 Windows 하위 시스템" 옵션 활성화
PowerShell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  1. "Virtual Machine 플랫폼" 옵션 활성화
PowerShell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

두개의 명령어를 입력 후, 컴퓨터를 재부팅해주세요!

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

다음 해당 사이트에서 리눅스 커널 업데이트 패키지를 다운로드 및 설치 이후 다시 PowerShell을 관리자 권한으로 실행한다.

PowerShell
wsl --set-default-version 2

위 명령어를 통해 WSL2를 기본 버전으로 설정한다.

리눅스(ubuntu) 배포판 설치

리눅스를 설치해야하므로 Microsoft Store에 들어간다.
현재 'Ubuntu 22.04.2 LTS'까지 있지만 필자가 설치하고 실행해보았지만 오류가 발생해 사용하지 않고, 'Ubuntu 20.04.06 LTS'를 설치한다.

설치 후 실행하면 계정을 생성하고 암호를 설정하라는 문구가 나오므로
이에 따라 계정 생성및 암호를 설정한다.

리눅스(ubuntu) 배포판 실행

모든 작업이 완료 되었으므로 다시 PowerShell 관리자 권한모드로 돌아가
ubuntu배포판과 wsl버젼을 확인하기 위해 아래 명령어를 통해 확인한다.

PowerShell
wsl -ㅣ -v

이후, wsl 명령어를 통해 리눅수 배포판을 실행하면

PowerShell
wsl

ubuntu에 정상적으로 접속하는걸 확인할 수 있다.

Docker설치

위 작업을 모두 완료하였다면
https://docs.docker.com/desktop/install/windows-install/
사이트를 통해 desktop docker를 다운로드 한다.

다운로드가 완료되면 실행시켜 설치를 진행하면되는데 이떄, 다양한 사이트에서 아래와 같이 나와 모두 클릭하면 된다고 한다.

근데 나는, add shortcut to desktop 밖에 안나왔다.
하지만 이것만 나와도 필자는 잘실행되었으므로 그냥 넘어가도될듯 하다.
(만약 안되신다면, 댓글을 남겨주세요! 같이 찾아봐요!)

설치가 완료되면 다음과 같은 앱이 설치를 진행한 기기에 보일 것이다.

해당 앱을 클릭하면 다음과 같은 화면이 나올 것이다.
(해당 사진은 image생성 후 작성한 글이라 Images에 image들이 있습니다!)

Docker Hub

docker hub란 내가 생성한 Image를 다른 팀원들과 공유하기 위해 업로드하는 공간이라고 생각하면 된다.
즉, 다른 개발자들은 나의 프로젝트를 같이 개발하기 위해 환경설정을 따로 할 필요없이 docker hub에 있는 Image를 container로 가져와서 실행하면 된다.

https://hub.docker.com/
먼저 docekr hub 해당 사이트에 접속하여 회원가입을 진행한다.
필자는 github를 통해 회원가입을 진행하였다.

로그인 이후, 아래 사진과 같이 Repository에 접속하여Create repository 를 클릭한다.

클릭하면 다음과 같은 화면이 보이는데 namespace사용자의 이름 , Repository Name사용할 태그 명을 기입하면된다.

그리고 Visibility는 public은 모두에게 공개, private은 나와 내가 초대한 사용자들만 볼 수 있는 것이다.
(이는 필요에 따라 선택하면 될것 같다.)

위과정을 마치면 create 버튼을 통해 Repository를 생성한다.
그러면 화면이 바뀌면서 우측에 docker push namespace/RepositoryName:tagname 을 통해 Repository로 Image를 업로드 할 수 있음을 알 수 있다.

Spring boot 프로젝트 Image 업로드 해보기

이제 Image를 만들어 Docker hub에 업로드만 하면 된다.
먼저 Spring boot 프로젝트를 열어 폴더들을 보면 다음과 같은 구조를 볼 수 있다.

gradle을 build를 진행한다.

그러면 build폴더에 lib폴더, 그안에 jar파일이 생성된걸 볼 수 있다.

이제 Dockerfile을 만드는데, build.gradle과 같은 위치에 있도록 만든다.
이후 Dockerfile에 다음과 같이 작성한다.

드디어 docker 명령어들을 사용할 차례이다.

IntelliJ teminal
docker login

위명령어를 통해 Docker hub에 접속한다.
이때 Docker desktop에 미리 로그인이 되어있다면, 자동으로 로그인이 될것이다.

다음 이전에 만든 Dockerfile이 위치한 곳에서 아래 명령어를 실행하면되는데 이전 Docker hub에 작성했던 namespace와 Repository, 그리고 :TaG이름을 작성하면된다.

IntelliJ teminal
docker build -t namespace/repository : TaG

build가 끝나고 해당 image가 제대로 생성이 되었나?라는 의문이 든다면
아래 명령어를 통해 지금까지 내가 생성한 images들을 볼 수 있다.

IntelliJ teminal
docker images

이제 이를 공유하기 위해 Docker hub에 업로드 해야한다.
docker push명령어를 통해 업로드 할 수 있는데, docker images를 통해 알게된 Image의 repository와 Tag를 아래 형식대로 실행시키면 된다.

IntelliJ teminal
docker push ImageRepository:TaG

push한 결과는 Docker hub에서 해당 Repository의 Tag에서 확인할 수 있다.

위 그림의 빨간 박스 부분은 이제 다른 유저들이 해당 이미지를 통해 container를 얻기위해 사용하는 명령어로 복사해 사용하면 된다.


Reference

WSL2 설치 - 스타셀님 블로그
Docker hub - 꼬예님 블로그
Spring project image 생성 - 쭈꾸마뇽의 개발블로그

profile
하고 시픈 거 다 하면서 살 거야

0개의 댓글