inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

비전공자도 이해할 수 있는 Docker 입문/실전

마지막 강의 질문있습니다.

68

임다정

작성한 질문수 63

0

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: 10

aws ecr에서 폴더 만든후에 compose.yml을 따로 작성했는데 my-db에 mysql이랑 my-cache-server redis는 도커허브에서 이미지를 가져오는건가요?

docker docker-compose docker-volume docker-image container ecr

답변 1

0

JSCODE 박재성

안녕하세요 다정님 ! 마지막 강의까지 잘 따라오셨네요~~

질문 주신 내용에 대해서 답변 드려볼게요 !

 

"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

임다정

실습을 똑같이 따라했는데 저는 mysql이랑 redis 이미지를 도커허브에서 가져올수없다고 하던데..이유를잘모르겠습니다.

0

JSCODE 박재성

안녕하세요! 다정님 !

이미지를 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

JSCODE 박재성

결론부터 말씀드리면, 로컬에서 쓰던 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