표시된 부분을 누르면 빌린 컴퓨터의 내부 쉘로 접속이 된다.
해당 쉘은 봉닝의 로컬 컴퓨터와는 상관 없이, 24시간 계속 켜져있는 컴퓨터이며, 해당 컴퓨터를 종료하고 싶으면, 인스턴스 중지를 해줘야 한다.
이 컴퓨터는 처음 설정할 떄의 우분투 운영체제이다.
그러므로 우분투는 먼저 apt업데이트를 해줘야 한다. apt는 우분투의 패키지 관리툴이다.
sudo apt update
도커를 배포 할건데 새 컴퓨터이니 당연히 도커가 없다.
sudo apt install docker.io
, sudo apt install docker-compose
이 컴퓨터에 프로젝트를 가져와줘야 한다.
git remote -v로 연결된 저장소 확인
후 빌려온 컴퓨터에 깃클론해준다.자신의 파일에는 .env로 주요 정보를 막아놨으니, 만들어줘야 docker-compose build를 해줄수 있다.
vi tor창이 .env.docker
로 파일을 만든다.esc
를 눌러 insert 모드를 종료시켜주고, :wq
명령어를 통해 저장하고 vim editor창을 종료시킨다.:q
: vim editor 창 종료:q!
: vim editor 창 강제 종료:wq
: vim editor 창 저장하고 종료마지막으로 ls -al
명령어를 통해 .env.docker 파일이 만들어진 것을 확인할 수 있다.
이제 docker-compose build를 통해 서버를 열어주면 된다.
다시 Compute Engine → VM 인스턴스를 들어가서 수정을 해줘 만들어줬던 방화벽 이름을
네트워크 테그에 똑같이 붙여준다.
vm인스턴스로 다시 들어가서 외부 ip를 따와 그 컴퓨터의 ip로 접속이 가능하게 된다.
sudo docker-compose up
언제든지 control + c 로 서버 종료 가능
Foreground Process(포그라운드 프로세스)
서버 종료가 너무 쉽게 이뤄지기 때문에 실제 배포는 포그라운드에서 진행되지 않는다.
sudo docker-compose up -d
백그라운드로 실행시킴 구글클라우드를 종료하지 않는한 도커가 살아있다
하지만 로그가 안보인다.
docker ps
명령어를 통해 백그라운드로 도커가 실행되고 있는 것을 확인할 수 있습니다.
docker-compose logs
백그라운드로 실행한 로그를 확인해 보고 싶다면 해당 파일의 docker-compose logs 명령어를 통해 확인할 수 있습니다. (한번만 로그를 볼수 있음)
docker-compose logs -f
실행중인 로그를 계속 보고 싶다면 해당 파일의 docker-compose logs -f 명령어를 통해 확인할 수 있습니다.
해당화면을 벗어나가고 싶으면 ctrol + c를 통해 종료시킬 수 있다, 이것은 **로그 보는것의 종료이지 서버의 종류가 아니다!!**
docker-compose stop
백그란운드에서 실행되기에 별도에 명령어로 서버를 종료시켜줘야 한다.
사용자에게 sudo 권한을 부여하거나 해제하고 싶을 시, sudo 그룹에 사용자를 추가/삭제하면 됩니다.
인스턴스 터미널에 sudo cat /etc/group 명령어를 입력해본다.
sudo cat /etc/group
sudo usermod -aG docker 본인아이디
명령어를 통해 본인 계정을 등록 해줍니다.
다시 쉘을 껐다 키면 sudo docker-compose build
가 아닌 docker-compose build
가 가능해진다.
컴퓨터마다 내부IP와 외부IP가 있다.
내부 VPC안에서는 내부IP로 접속을 한다.
백엔드 외부IP는 브라우저가 VPC안으로 들어올때 필요하고 백엔드가 데이터베이스로 넘어갈떄는 DB의 내부IP가 필요하다.
=> 이러면 보안도 높아지고 속도도 빨라지는 효과가 있다.
데이터베이스는 두대 이상으로 관리를 해주고 문제가 생기면 나머지 한대의 데이터베이스로 넘어가게끔 해주는 기능이 필요하다 => High Availability(이중화구성)
이런것들이 복잡하기에 요즘은 특별한 보안문제가 아니라면 클라우드에서 대신해준다
ex)aws all in
데이터가 들어간 서비스의 형태는 이러하다.
스테이징이란 배포하기 전 가장 완벽한 단계로 환경도 배포랑 동일해야 한다.
git pull origin master 최근 업로드 된것만 받아오기
git remote -v 깃푸쉬돼서 깃클론할 사이트 받아오기
1.docker-compose.dev.yaml, docker-compose.prod.yaml, docker-compose.stage.yaml 만든다. 그에 해당하는 env파일도 다 만들어준다.
docker-compose.dev.yaml, docker-compose.prod.yaml, docker-compose.stage.yaml 파일의 volumes 부분은 모두 주석 처리해 주세요.
각자의 yaml 파일에 env_file을 각자에 맞게 바꿔준다.
우리는 배포를 하는 것이기에 prod를 사용하며, 이제는 prod를 실행시켜야 하기 때문에 아래와 같이 강제로 파일을 지정시켜서 실행시켜 줄 것입니다.
docker-compose build
와docker-compose up
명령어를 통해 파일을 실행시켜 왔는데,해당 명령어는
docker-compose -f docker-compose.yaml build
명령어를 줄여서 사용했던 것입니다.