Ch4. Docker HUB, Vagrant

SeoYaeJun·2025년 8월 6일

2학기 SW 교육

목록 보기
4/8
  1. Eclipse에서 Commit and Push할시 Git의 Action page

Setting -> Secret and Variables -> New Repository secret
그럼 이게 뭐냐? Docker Hub에 업로드 하는 과정

그렇다면 이 과정을 거치는 이유가 무엇일까? 왜 시크릿에 등록을 할까?

보안
레포지토리(.github/workflows/*.yml)나 코드 안에 그대로 노출되면 안 되는 민감 정보(패스워드, API 토큰 등)를 암호화된 형태로 저장합니다.
관리 편의
토큰이 만료되거나 바뀌면 시크릿 값만 바꿔 주면 워크플로 전체를 수정할 필요가 없습니다.

Docker USERNAME에는 본인의 계정
PASSWORD에는 본인의 Docker Token값을 입력


3. Vagrant

Vagrant란?

개발환경을 코드로 관리해주는 Tool.
복잡한 가상머신 환경을 텍스트파일 Vegrantfile 한개로 정의하고 팀원간 똑같이 재현이 가능하다는 특징.

(Vagrantfile 예시)

Vagrant의 핵심 개념

박스(Box)
OS 이미지의 패키지(Ubuntu 22.04, CentOS 7 등).
vagrant init ubuntu/jammy64 처럼 원격 레포지토리에서 내려받아 사용.

프로바이더(Provider)
박스를 실행할 하이퍼바이저. 기본은 VirtualBox, 그 외 VMware, Hyper-V, Docker 등.
동일한 Vagrantfile로 어떤 프로바이더를 써도 똑같은 환경을 띄울 수 있음.

프로비저닝(Provisioning)
VM이 띄워진 후에 자동으로 필요한 패키지 설치·설정 스크립트를 실행.
Shell 스크립트, Ansible, Chef, Puppet 등을 선언 가능.

Vagrantfile
Ruby DSL 형태의 설정 파일.
박스 선택, 네트워크, 동기화 폴더(sync), 프로비저닝 스크립트, 포트포워딩 등을 기술.

“왜 Vagrant를 쓰는가?”

1.개발 환경 일관성 유지
“내 컴퓨터에선 되는데…” 문제 방지.
모든 팀원이 똑같은 OS, 패키지, 버전으로 개발.

2.환경 재현 및 롤백
문제가 생기면 vagrant destroy && vagrant up 만으로 초기 상태로 복구.
버전별 테스트용으로 여러 박스를 띄워 비교 가능.

3.프로비저닝 자동화
초기 설정을 수작업 대신 코드로 관리.
신규 팀원 온보딩 시 세팅 시간 단축.

4.경량화된 테스트/CI
CI 서버에서 VM을 띄워 E2E 테스트, 통합 테스트를 격리된 환경에서 실행.
Docker 프로바이더와 결합해 더 빠르게.

VM v01에서 v02로 이동하는 과정

ssh-keygen

ssh-keygen의 Vagrant에서의 역할

Vagrant는 기본적으로 Insecure Key를 사용해 VM을 띄우지만,
더 안전한 자체 키를 쓰려면 ssh-keygen으로 키를 만들고,
Vagrantfile에 config.ssh.private_key_path = "~/.ssh/id_rsa" 처럼 경로를 지정해 사용합니다.
이를 통해 vagrant ssh 할 때 내가 생성한 키로 자동 인증이 이루어집니다.

“SSH 접속에 사용할 키를 만들어 주는 도구”이고, Vagrant에서 자체 키를 쓰고 싶을 때 이 키를 생성해서 Vagrantfile에 등록해 주는 역할

profile
안드로이드 개발자

0개의 댓글