로컬에서만 돌릴 순 없잖아?
aws EC2 인스턴스에 도커를 올려보자.
로컬에서는 docker build 후 이미지 생성하면 바로 docker run이 가능했다.
aws에서 이미지를 또 빌드하지 않고 사용하기 위해 docker hub에 이미지를 push한다.
로컬에서 hub에 push하고 EC2에서 pull하면 이미지를 가져와 사용할 수 있다.
[로컬]
$ docker build --platform linux/amd64 -t rbgksqkr/shopping-image -f ./DockerFile .
$ docker push rbgksqkr/shopping-image
[EC2]
$ sudo apt-get update -y
$ sudo snap install docker
$ sudo chmod 666 /var/run/docker.sock
$ sudo docker pull rbgksqkr/shopping-image
$ sudo docker run -d -p 3307:3000 --name shopping-container rbgksqkr/shopping-image
docker hub에 이미지를 올리기 위해 docker push를 할 때 오류가 발생한다.
[hubID]/[이미지이름]
을 태그 이름으로 지정하면 해결된다.
docker를 EC2에 설치하고 명령어를 쓰면 권한 오류가 발생한다.
docker 권한 오류 : sudo chmod 666 /var/run/docker.sock
docker 이미지를 받아와서 컨테이너에 가동시키려고하면 플랫폼이 일치하지 않는다는 오류가 발생한다. M1 맥북과 EC2 환경을 일치시켜줘야 한다.
맥북 platform 불일치 오류 : docker build --platform linux/amd64 ~
- Dockerfile을 생성한다. (로컬)
- Docker 이미지를 빌드한다. (로컬)
docker build --platform linux/amd64 -t rbgksqkr/shopping-image -f ./DockerFile .
- Docker Hub에 이미지를 push 한다. (로컬)
docker push rbgksqkr/shopping-image
- EC2 서버에서 해당 이미지를 pull 한다. (EC2)
sudo docker pull rbgksqkr/shopping-image
- EC2 서버에서 컨테이너를 실행한다. (EC2)
sudo docker run -d -p 3307:3000 --name shopping-container rbgksqkr/shopping-image
EC2에 Docker로 배포하기
도커 아이콘 제작자: Freepik - Flaticon
docker push 에러
docker 설치 후 권한 이슈
platform 이슈