Hyunseok
프로그래밍/개인홈페이지 미니 서버를 만들어보자 - Docker compose로 MySQL, Redis 올리기
2023. 1. 8. 18:50

 

도커가 깔렸다면..

 

docker -v, docker ps 

혹은 systemctl status docker로

잘 돌아가는지 확인을 해 보자

 

compose.yml

version: "3"
services:
  redis:
    image: redis:latest
    command: redis-server --port 지정할 Redis 포트번호
    container_name: Redis 컨테이너 이름
    hostname: redis_service
    labels:
      - "name=redis"
      - "mode=standalone"
    ports:
      - 외부에서Redis로 들어갈포트:지정한 Redis 포트번호

  mysql:
    image: mysql:latest
    container_name: MySQL 컨테이너 이름
    ports:
      - 외부에서들어올포트:지정해준포트번호
    environment:
      MYSQL_ROOT_PASSWORD: 지정할 root 비밀번호
      MYSQL_TCP_PORT: 지정할 MySQL 포트번호
      TZ: Asia/Seoul
    command: ["mysqld", "--default-authentication-plugin=mysql_native_password", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]

 먼저 터미널에서 touch compose.yml을 쳐서 새로운 파일을 만든다

(만드는 장소는 아무 곳이나 괜찮다 그런데 기억은 해두자)

 

그리고 위의 내용을 그대로 복사해서 넣어줄 것인데..

 

복사하기 전에 몇 가지 내용을 좀 수정해 주자

 

공통 설정

- image : 이미지 버전을 설정한다 원하는 버전이 있다면 수정해 주자 

- container_name: docker ps치면 나오는 컨테이너목록에 맨 오른쪽에 나오는 이름이다 알아보기 쉽게 지정해 주자

- ports: 도커의 포트 설정이다. 왼쪽이 들어오는, 오른쪽이 들어와서 어디로 가는지 설정해준다 생각하면 쉽다

 

redis

- command : --port 레디스서버의 포트를 임의지정한다 개인적으로 기본포트는 싫어하기에 수정해 준다

- hostname: redis_server로 지정해 주자

- labels: 일단 name은 그냥 redis로, mode는 우리가 분산처리할 것도 아니니 그냥 간단하게 standalone으로 맞춰주자

 

 

mysql

- command: mysql에 옵션을 줄 건데.. 간단하게 설명하면

ㄴ mysqld -- default-authentication-plugin=mysql_native_passwod

>  비밀번호 인증방식이 바뀌었다 한다.. 그래서 이전 호환성을 위해 이런 식으로 바꿔주자

ㄴ mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

ㄴ 이름 그대로 문자셋 설정이다 나중에 하나하나하기 귀찮으니 설정해 주자

- environment: password와  port를 지정해주며 타임존은 서울로 맞춰주자

 

이제 다 수정했으면 아까 열어둔 compose.yml에 냅다 붙여넣기하고

:wq로 저장해서 나오자

 

주의할 점

1. version: '3'이 잘리지 않았는가 잘 확인한다

2. 공백이 잘 들어갔는지 꼼꼼히 확인한다

3. 오타가 없는지 잘 확인한다

 

다 잘 확인했다면.. 이제 컴포즈 파일을 실행시킬 차례

 

docker compose up -d로 compose파일을 백그라운드 상태로 올린다

 

처음실행이라면 이미지들 다운로드하고 쥬르륵 뜬 뒤 시작이 완료되었다는 말이 나온다 

 

확인해보려면 docker ps를 치면 현재 실행 중인 컨테이너가 나온다 

 

여기서 만약에 2개가 없다면..

 

docker ps -a로 꺼진 컨테이너도 확인한다

ㄴ 만약 꺼져있다면 이유를 확인해야 하니.. 로그를 찍어보도록 하자

> docker logs 컨테이너이름

이런 식으로 치면 그 컨테이너의 로그가 좍 뜬다 여기서 오류를 찾아서 해결하자

 

도커는 간단하게 끝이 났다 다음 포스팅은 방화벽을 열어보자

 

 

 

 


프로그래밍/개인홈페이지의 다른 글