Home 배포_redis
Post
Cancel

배포_redis

Redis

이 전 글에서 redis를 application.properties에 아래와 같이 설정했다.

1
spring.redis.host = host.docker.internal


host.docker.internal은 Docker for Windows 및 Docker for Mac에서 로컬 호스트를 가리키는 특수한 DNS 이름이다.

따라서 Linux에서는 이 이름이 제대로 동작하지 않기 때문에 환경변수를 수정해줘야한다.


만약 이를 놓쳤다면

UnknownHostException: host.docker.internal: Name or service not known 라는 에러를 볼 수 있을 것이다.




docker redis

Redis 서버를 백그라운드에서 실행하며, 호스트의 6379 포트를 통해 해당 Redis 서버에 접근

1
docker run -d --name redis-container -p 6379:6379 redis
  • docker run: Docker 이미지를 실행하는 명령어

  • -d: 백그라운드에서 실행한다.

  • --name redis-container: 실행되는 container에 이름을 지정한다. → “redis-container”로 설정

  • -p 6379:6379: host의 6379 port와 container의 6379 port를 연결한다. → host에서 Redis에 접근하기 위한 포트 포워딩을 설정한다.

  • redis: 사용할 Docker 이미지의 이름이다. → Redis 이미지를 사용했다.




redis container ip 주소 확인하기

가장 마지막에 있는 redis-container 부분만 본인 container 이름으로 수정하면 된다.

1
docker inspect -f {\{range .NetworkSettings.Networks}}{\{.IPAddress}}{\{end}} redis-container


이렇게 입력하면 redis-container 컨테이너의 IP 주소를 출력해준다.




환경변수 적용하기

ip 주소를 환경변수에 적용해준다.

예시로 1.1.1로 작성

1
spring.redis.host = 1.1.1



docker-compose를 이용하면, 컨테이너 명으로 해당 컨테이너에 접근할 수 있다는 글을 본적이 있는데

나는 docker-compose를 이용하지 않았고 컨테이너 명을 사용하면 Name or service not known 에러가 뜬다.

따라서 ip 주소로 수정을 했고 오류가 나타나지 않게 되었다.

This post is licensed under CC BY 4.0 by the author.