마지막 강의 질문있습니다.
68
작성한 질문수 63
services:
instagram-server:
image: 002177417362.dkr.ecr.ap-northeast-2.amazonaws.com/instagram-server:latest
ports:
- 8080:8080
depends_on:
my-db:
condition: service_healthy
my-cache-server:
condition: service_healthy
my-db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: pwd1234
MYSQL_DATABASE: mydb
volumes:
- ./mysql_data:/var/lib/mysql
ports:
- 3306:3306
healthcheck:
test: [ "CMD", "mysqladmin", "ping" ]
interval: 5s
retries: 10
my-cache-server:
image: redis
ports:
- 6379:6379
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 5s
retries: 10aws ecr에서 폴더 만든후에 compose.yml을 따로 작성했는데 my-db에 mysql이랑 my-cache-server redis는 도커허브에서 이미지를 가져오는건가요?
답변 1
0
안녕하세요 다정님 ! 마지막 강의까지 잘 따라오셨네요~~
질문 주신 내용에 대해서 답변 드려볼게요 !
"mysql이랑 my-cache-server redis는 도커허브에서 이미지를 가져오는건가요?"
-> 네 맞습니다 ! DockerHub(공식 Docker 이미지 저장소)에서
mysql과 redis 이미지를 다운로드해서 사용해요 ~
별도로 image에 경로를 지정해주지 않으면 기본적으로는 DockerHub에서 pull 해오죠 :)
반대로 ECR 이미지는 아래와 같이 AWS ECR에 직접 푸시한 이미지를 사용해요 ~
instagram-server:
image: 002177417362.dkr.ecr.ap-northeast-2.amazonaws.com/instagram-server:latest
image 경로가 ECR 도메인이기 때문에 AWS ECR에서 직접 pull 해오는 방식이죠 :)
추가로 궁금한 점 있으면 언제든 질문 주세요~ 😄
0
안녕하세요! 다정님 !
이미지를 DockerHub에서 가져올 수 없는 문제에 대해
차근히 점검하는 법 안내드려볼게요 ~
크게 아래와 같은 3가지 원인들에 대해 확인해보시는걸 추천드려요 !
[1] 네트워크 문제
네트워크 연결 상태 및 방화벽이나 회사 네트워크 정책으로 Docker Hub 접근이 차단 되었을 가능성이 있어요 !
[2] Docker Hub Rate Limit 문제
Docker Hub에서 익명 사용자의 경우 이미지 다운로드에 제한이 있어요
[3] Docker 설정 문제
Docker 데몬이 제대로 실행되지 않고 있을 수도 있어요 ! 가장 유력한 후보에요 !
아래 디버깅 과정을 통해 하나씩 체크해 보시는걸 추천드려요 !
1단계: Docker 상태 확인
$ docker version
$ sudo systemctl status docker
2단계: Docker Hub 로그인
Docker Hub 계정으로 로그인하면 Rate Limit가 문제 였을 경우 해결할 수 있어요 :)
$ docker login
3단계: 수동으로 이미지 다운로드 테스트
$ docker pull mysql
$ docker pull redis
4단계: 특정 태그 명시해보기
my-db:
image: mysql:8.0 # 특정 버전 명시
my-cache-server:
image: redis:7.0 # 특정 버전 명시
위 디버깅 과정을 통해 하나씩 차근차근 체크해 보세요 :)
그래두 해결이 안되시면 오류 메시지와 로그들을 추가로 알려주시면
더 구체적으로 디버깅 도와드리겠습니다 ~~
늘 파이팅입니다 !
0
혹시 aws ec2에 배포를 하려면 compose.yml을 ec2에 작성을 하잖아요 그럼 스프링부트에서 로컬에서 사용했던 compose.yml은 삭제하고 이미지로 빌드해야하나요?
0
결론부터 말씀드리면, 로컬에서 쓰던 compose.yml은 삭제할 필요 없어요 !
EC2에서 사용하는 compose.yml은 EC2에서 컨테이너를 실행시키기 위한 목적이고, 로컬에서 작성한 compose.yml은 로컬에서 테스트하거나 GitHub에 올리기 위한 목적이기 때문이에요 ~
또 궁금한 점 있으면 편하게 질문 주세요 :)
EC2 터미널에서 docker pull
0
66
2
AWS ECR
0
61
2
FROM openjdk:17-jdk 현재 기준 dockerhub에 없습니다
1
112
2
Redis 볼륨 설정?
0
124
2
컨테이너의 IP
0
88
2
도커 이미지를 만들 때 application.yml
0
110
2
compose.yml 관리
0
97
2
ECR 리포지토리에 이미지가 3개가 보입니다.
0
83
2
액세스 키 등록하는 시점 관련 질문이 있습니다.
0
89
1
depends_on에 따른 컨테이너 실행 순서
0
81
2
실제 웹 서비스 배포 시 질문
0
86
2
도커 volume 질문
0
69
3
HTTPS로도 받고 싶으면 docker compose에 443도 쓰면 될까요?
0
79
2
sql 볼륨 폴더 지우면 데이터베이스 데이터 날라가는거 아닌가요?
0
78
2
39강 도커파일 빌드 경로 질문이 있습니다.
0
76
2
도커파일 copy
0
77
2
실무에서 docker compose up --build를 할 때
0
227
2
mysql_data 폴더 내부에 다른 파일이 있는데도 잘 되는 경우
0
93
2
도커 허브에서 postgres 버전 확인하는 법
0
143
2
보충 자료와도 관련된 추가 내용
1
85
1
현업에서 MySQL은 RDS와 도커 볼륨 중 어떤 걸 사용하나요?
0
117
2
노션 자료에 안 보이는 이미지가 있습니다
0
107
1
도커 허브에서의 latest가 가장 최신인 게 맞나요?
0
129
2
docker image ls 실행 시 나오는 내용이 다릅니다
0
92
2





