상세 컨텐츠

본문 제목

[Docker] 도커를 이용한 테스트 서버 구축

개발 공부 (시니어코딩)/테스트 서버 구축

by letprogramming 2024. 1. 2. 17:43

본문

반응형

클라우드 서버에 서비스 서버 구축은 앞선 게시글에서 구축했다.

클라우드 서버에 로컬에서 개발한 코드나 바이너리를 곧바로 업로드하여 실행시키면서 테스트도 가능하지만,

이 방법은 예기치 못한 에러 발생이나 클라우드 서버 사용 비용 과금 등의 문제가 발생할 수 있다.

예를 들어, 코드에서 잘못된 분기로 인해 서버에서 무한루프가 돌고 이때 API 호출 등의 트래픽을 발생시키는 행위가

실제 클라우드 서버에서 지속된다면 불필요한 비용이 발생한다.

그리고 현재는 개발 단계이지만 이후에 실제 배포 이후에 코드를 수정하고 배포할 일이 있다면 테스트 없이 바로 배포하는 것은 리스크가 있다. 하루에도 수십만, 수백만 명의 사람들이 이용하는 대형 웹사이트에서 버그가 있는 코드를 바로 사용자들에게 배포하진 않을 것이다.

실제 서비스하는 서버에 배포하기 전 테스트를 위한 테스트 서버가 필요하다.

 

도커(docker)는 컨테이너를 통해 사용자에게 가상 환경을 제공해준다.

따라서 실제 서비스 서버와 동일 환경의 컨테이너를 테스트 서버로 사용할 수 있다.

 

아래 명령어를 통해 최신의 Linux centos 이미지로부터 "dev"라는 이름의 컨테이너를 생성할 수 있다.

참고로 docker의 장점은 image를 주고받을 수 있다는 것이다.

dockerhub에서 image를 받을 수 있고, 내가 만든 image를 만들어서 공유할 수 있다.

따라서 docker image를 하나 만들어놓으면 팀프로젝트를 진행 시에 모두 동일한 테스트 서버환경을 쉽게 공유할 수 있다.

팀프로젝트 시에 빈번하게 발생하는 문제가 라이브러리, 패키지들의 의존성 문제이다.

docker image를 이용하면 동일한 환경을 그대로 공유하기 떄문에 쉽게 동일한 환경을 구축할 수 있다.

docker container run -it --name "dev" --hostname dev -p 80:80 centos centos:latest

 

반응형

아래 명령어를 통해 현재 docker의 container 리스트를 볼 수 있다.

docker ps -a

 

위와 같이 docker container 생성 후 접속이 되고나면 테스트 서버를 임의로 세팅하면 된다.

 

docker container를 실행하는  방법은 아래와 같다.

docker start "container 이름"

 

docker start 후에 아래 명령어를 통해 터미널로 접속할 수 있다.

docker attach "container 이름"

 

 

docker image 생성, 저장, 로드 방법은 아래와 같다.

아래 docker commit 후에 위 start, attach로 정상 동작하는 지 확인 후에 save하고 image를 공유하면 된다.

 

docker commit dev devimg
#docker commit [컨테이너이름] [이미지이름]

docker images
#show docker image list

docker save -o devimg.tar devimg
#docker image file save 

docker load devimg.tar
#docker image load -i devimg.tar
반응형