안녕하세요.
이번 포스팅에서는 제가 jar 앱을 docker 사용해서 aws에 배포하면서 사용한 명령어를 순서대로 알아보겠습니다.
아래 사진은 제가 만들어 본, 시스템 구성도입니다.
1. IDE에서 jar 패키징
> mvn clean package
//테스트 뺴고 패키징하려면 옵션으로 -DskipTests를 주면 됩니다.
2. docker로 패키징한 jar를 docker 이미지로 빌드합니다.
- 해당 명령어는 로컬 PC에 설치된 docker에 이미지가 생성되는 것입니다.
- Docker Hub에 이미지를 올리려면 이미지 이름을 <Docker Hub 사용자 계정>/<이미지 이름>:<태그> 형식으로 생성해야 합니다. 아무 사용자 이름이나 사용할 수 있지만 내 계정 이름과 일치해야 이미지를 올릴 수 있습니다. 태그를 지정하지 않으면 latest가 됩니다.
> docker build -t 도커허브 닉네임/도커허브레포지토리 이름 .
/*
빌드 시, 필요한 속성값을 주는 옵션
--build-arg ENVIRONMENT=입력할 값
*/
// ex) docker build --build-arg ENVIRONMENT=prod -t dockerhubnickname/app .
- 빌드 성공 시, 터미널 메시지
- 로컬 PC의 docker에 쌓인 image들.
3. 로컬 터미널에서 dockerhub 로그인을 합니다.
> sudo docker login
- 로그인 성공 시, 터미널 메시지
4. docker hub의 repository로 이미지를 push합니다.
> docker push 도커허브 닉네임/레포지토리 이름:tag이름
//ex) docker push dockerhubnickname/app:latest
이제 부터는 aws 터미널에서 명령어를 입력합니다.
5. docker가 서버에 켜져 있지 않다면, 실행 명령어를 입력합니다.(서버에 도커가 설치되어 있어야 합니다.)
$ sudo service docker start
- 서버가 부팅되었을 때, 자동으로 docker 서비스가 올라가게 설정하는 명령어
$ sudo chkconfig docker on
6. docker hub로부터 최신 이미지를 내려(pull)받습니다.
docker pull 이미지 이름
// ex) docker pull dockerhubnickname/app:latest
7. aws 터미널 docker에서 다음 명령어를 실행하면 백그라운드에서 이미지가 컨테이너로 실행됩니다.
$ docker run -d -p 80:8085 이미지 이름
//ex) $ docker run -d -p 80:8085 dockerhubnickname/app:latest
여기까지 정상적으로 명령어들이 실행되었다면, aws의 인스턴스 서버 public ip에서 배포된 앱을 확인하실 수 있습니다.
감사합니다.
'AWS' 카테고리의 다른 글
[AWS] Amazon Elastic Container Registry(Amazon ECR) (0) | 2022.09.26 |
---|---|
[AWS] s3 + cloudfront 웹 띄운 거, 원하는 도메인 설정 (0) | 2022.09.15 |
[AWS]api gateWAY -> EC2 CORS 에러 문제 (0) | 2022.07.20 |
[aws]IAM은 무엇인가요? (0) | 2020.11.28 |
AWS-Lightsail-Database-PostgreSQL12.4-instance 서버 구축하기 (0) | 2020.10.15 |
댓글