local에서 이미지 생성 후 ecr repo에 푸쉬, 그 다음 ec2에서 pull하는 과정 정리
명령어 나열 순서대로 터미널창에 복붙
# ecr 쓰려면 iam 계정 필수(root는 안됨)
aws configure
# aws cli 19년도 버전 이후는 이 명령어 사용
sudo aws ecr get-login --no-include-email
# docker login -u AWS -p 뭐시기 나오는데 그대로 복붙하면
Login Succeeded 나오면 정상적으로 로그인 성공
# ecr 레포 만들기
aws ecr create-repository --repository-name social/django
aws ecr create-repository --repository-name social/nginx
# docker build 명령어로 이미지 만들기
❯ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
socials/nginx v1 72b291d7d690 About an hour ago 142MB
socials/django v1 0c0c0a238226 About an hour ago 1.13GB
wlgns410/test 0.1.0 507edfd1d37b 3 weeks ago 1.03GB
# 이미지 태그하기 - 레포지토리:태그 url:태그
> docker tag socials/django:v1 {{ecr django url 복붙}}:v1
> docker tag socials/nginx:v1 {{ecr nginx url 복붙}}:v1
# ecr에 푸쉬하기
> docker push {{ecr url django 복붙}}:v1
> docker push {{ecr url nginx 복붙}}:v1
# 이제 이걸 ec2에 pull 받기
> docker pull {{ecr url django 복붙}}:v1
> docker pull {{ecr url nginx 복붙}}:v1
# 이미지 돌리기
> docker compose up -d
** docker hub image push
docker login
# 이미지 태그 붙이기 docker tag imageId dockerhubuserid/dockerhubrepo
docker tag my-image username/my-repo
# 레포에 푸쉬
docker push username/my-repo
참고 : https://stackoverflow.com/questions/28349392/how-to-push-a-docker-image-to-a-private-repository
** 돌아가는 container를 image로 만들기
docker commit -m [image 설명] -a [ 사용자 mail ] [ container Name or ID ] [ 생성할 image name : Tag ]
예) docker commit -m "ip address change" -a "peksoon@naver.com" bb29fe475fb5 peksoon_tomcat:1.0.2
참고 : https://ikcoo.tistory.com/33
이제 배포가 엄청 쉬워졌다.
이걸 기반으로 github action으로 배포 자동화도 해보고자 한다.
**추가
ecs fargate, ec2 등이 있는데, ec2는 linux가 기본인것 같고, ubuntu는 따로 설정사항이 있나보다.
github action은 급한거 아니니까 천천히 추가해야겠다.