inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Kafka

maradb dockerfile

330

SeJongDeveloper

작성한 질문수 10

0

Dockerfile 내용

FROM mariadb
ENV MYSQL_ROOT_PASSWORD test1357
ENV MYSQL_DATABASE mydb
COPY ./mysql_data/mysql /var/lib/mysql
EXPOSE 3306
ENTRYPOINT ["mariadb", "--user=root"]



실습환경
windows 10


mysql_data\mysql 내용

 

에러 메시지
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)

 

spring-boot jpa 아키텍처 spring-cloud kafka msa rabbitmq

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

SeJongDeveloper님, mariadb 이미지를 사용해서 Docker 컨테이너를 만드는 과정에서 발생한 소켓 연결 문제로 보입니다. 제시해 주신 Dockerfile을 볼 때, ENTRYPOINT에서 사용자를 root로 설정하고 있는데요, 이 경우 MariaDB 서비스를 직접 실행하는 대신 관리자 권한으로 mariadb 커맨드 라인을 실행하려고 하시는 것 같습니다.

마리아DB 이미지는 mysqld 서버를 시작하기 위해 자체 스크립트를 사용하기 때문에, ENTRYPOINT를 사용자 정의 할 필요가 없습니다. 기본 ENTRYPOINT는 이미 Docker 이미지 내부에 적절히 설정되어 있으며, 서버가 바로 실행될 수 있게 해 줍니다. ENTRYPOINT를 제거하시고 다시 시도해 보세요.

또한 MariaDB 컨테이너에서 데이터를 지속적으로 보관하려면 볼륨을 올바르게 마운트해야 합니다. Dockerfile에서는 COPY 명령을 사용하여 데이터를 컨테이너 안에 복사하고 있는데, 이 데이터는 컨테이너가 삭제될 때 함께 삭제될 수 있습니다. 지속성을 위해서는 Docker의 볼륨을 사용하는 것이 좋습니다.

수정된 Dockerfile은 다음과 같습니다:

FROM mariadb
ENV MYSQL_ROOT_PASSWORD test1357
ENV MYSQL_DATABASE mydb
VOLUME /var/lib/mysql
EXPOSE 3306

그리고 도커 볼륨을 사용하여 mysql_data/mysql 디렉토리를 마리아DB 컨테이너의 /var/lib/mysql에 마운트하는 명령을 실행해야 합니다. 예를 들어 다음과 같은 명령을 사용할 수 있습니다:

docker run -v /path/to/mysql_data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=test1357 -e MYSQL_DATABASE=mydb -p 3306:3306 --name my-mariadb -d mariadb

위 경로는 실제 mysql_data/mysql 디렉토리가 있는 호스트 머신의 전체 경로로 대체해 주셔야 합니다. 그래야만 호스트와 컨테이너 간에 올바른 데이터 볼륨 공유가 이루어질 수 있습니다.

그렇게 하면 데이터를 지속적으로 보관할 수 있고, 서버 에러가 해결될 가능성이 높습니다.

kafka 업데이트 강의 듣고 시포요

0

85

1

강의 교안

0

73

1

마이크로서비스간 통신 시, 인증 처리

0

79

1

api gateway 에서 인증 처리

0

65

1

섹션 19 질문드립니다

0

53

1

강의 자료 업데이트

0

82

1

부하분산 강의 섹션

0

57

1

강의자료는 어디에서?

0

71

1

강의 자료는 어디서 다운 받을 수 있나요?

0

110

1

전체 사용자 조회시 오류

0

58

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

110

2

학습 방향

0

95

2

카프카 커넥터 사용 목적 문의

0

85

2

kafka 강의

0

108

2

서비스 디스커버리 종류

0

87

2

강의 자료에 대해서 궁금해요

0

116

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

90

2

Kafka Source Connect 버전 에러

0

85

2

소스커넥터는 사용안한 거 맞죠?

0

81

2

강의자료 업데이트 문의

0

95

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

56

1

강의 업데이트 계획이 궁금합니다.

0

112

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

161

2

어떤 것이 업데이트 된 건가요?

0

164

2