기록하는 개발자

Docker 설정 메뉴얼 본문

Open Source

Docker 설정 메뉴얼

gitseok 2021. 12. 5. 03:02

1. 도커 파일 생성

— DB [./Dockerfile_folder/mysql/Dockerfile]

FROM mysql:5.7

# 이미지 환경변수들 세팅
# 실전에서는 비밀번호 등을 이곳에 입력하지 말 것!
# 서버의 환경변수 등을 활용하세요.

ENV MYSQL_USER eboard_user
ENV MYSQL_PASSWORD pks1234
ENV MYSQL_ROOT_PASSWORD pks1234
ENV MYSQL_DATABASE docker_board

# 도커환경에서 컨테이너 생성시 스크립트를 실행하는 폴더로
# 미리 작성된 스크립트들을 이동
COPY ./scripts/ /docker-entrypoint-initdb.d/

# 이미지 빌드 명령어 (현 파일과 같은 디렉토리에서)
# docker build -t {이미지명} .

# 실행 명령어 (터미널에 로그 찍히는 것 보기)
# docker run --name {컨테이너명} -it -p 3306:3306 {이미지명}

# 실행 명령어 (데몬으로 실행)
# docker run --name {컨테이너명} -p 3306:3306 -d {이미지명}

From : mysql 5.7버전 사용

ENV : 디비에 필요한 설정

COPY : 불러와야하는 DDL생성문 폴더경로 (테이블, 사용자정보)

 

— Server[./]

FROM tomcat:8.5
MAINTAINER eGovframe Center

COPY target/*.war /usr/local/tomcat/webapps/

CMD ["catalina.sh", "run"]

From tomcat 8.5 버전 사용

 

2. docker-compose.yml 파일 생성

version: '3'
services:
  mysql-server:
    # Dockerfile이 있는 위치
    build: ./Dockerfile_folder/mysql
    # 내부에서 개방할 포트 : 외부에서 접근할 포트
    ports:
      - "3308:3306"
    command:
         mysqld --character-set-server=utf8 --collation-server=utf8_general_ci --skip-character-set-client-handshake --lower_case_table_names=1
    environment: 
      TZ: "Asia/Seoul"
  backend:
    build: .
    # 연결할 외부 디렉토리 : 컨테이너 내 디렉토리
    ports:
      - "8080:8080"
    # 환경변수 설정
    depends_on:
      - mysql-server

version : 3만 적으면 3의 최신버전을 사용한다는 의미

services : 아래에 실행하려는 컨테이너를 정의

build : Dockerfile의 위치 지정

ports : "사용자포트번호:컨테이너포트번호" (컨테이너 포트번호는 중복 가능)

command : 명령어 실행 목록(utf8, 테이블 정보 소문자 기능 추가)

environment : 환경 설정

TZ : TimeZone 시간 기준 설정

 

※주의※

같은 mysql 설정이지만 세팅하기 위해서 넣는 위치가 각자 다르다 (environment, command)

depends_on 도커파일 실행 순서

 

context-datasource.xml (접속 DB 입력)

<property name="url" value="jdbc:mysql://mysql-server:3306/docker_board?...

 

 

3. 도커 파일 실행

cd D:\\board\\workspace\\board //프로젝트 경로로 이동
D:\\board\\workspace\\board> docker-compose up -d //현재 경로의 docker-compose 실행 

docker ps -a //컨테이너 목록 확인
docker exec -it board_mysql-server_1 bash //컨테이너로 이동
mysql -u root -p //mysql 로그인
show variables like'c%'; //언어 확인
select @@global.time_zone, @@session.time_zone;  //글로벌 시간 확인
참고 : https://www.youtube.com/watch?v=hWPv9LMlme8

 

 

​개인적으로 정리한 내용을 간단하게 풀어 작성했습니다.
이해가 안가는 부분은 댓글 남겨주시면 설명해드리겠습니다.

'Open Source' 카테고리의 다른 글

amCharts 5 계층형 Treemap 메뉴얼  (0) 2022.11.23
MyBatis resultMap collection 사용법 [1:N select]  (0) 2022.07.29
summernote 메뉴얼  (0) 2021.12.05
CKEditor5 메뉴얼  (0) 2021.12.05
Comments