Ubuntu

Ubuntu 18.04 Docker(+Docker-Compose)+Mysql구축

지오준 2021. 2. 24.
반응형

1. Docker 설치전 작업

# apt 업데이트

sudo apt-get update

# apt가 HTTPS를 통해 저장소 사용

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# Docker 공식 GPG 키 추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 키 확인

sudo apt-key fingerprint 0EBFCD88

# stable 설정

sudo add-apt-repository \

"deb [arch = amd64] https://download.docker.com/linux/ubuntu \

$ (lsb_release -cs) \

stable "

2. Docker 설치 작업

# apt 업데이트

sudo apt-get update

# 최신 버전을 설치

sudo apt-get install docker-ce

3. Docker 설치후 작업

# docker 그룹 만들기

sudo groupadd docker

# 사용자를 docker 그룹에 추가

sudo usermod -aG docker $ USER

# 리눅스 서버 재시작 및 그룹 구성원 업데이트

sudo reboot

4. Docker-Compose 설치 작업

# 최신파일 다운로드

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s) - $ (uname -m)"-o / usr / local / bin / docker-compose

# 실행 권한을 부여

sudo chmod + x / usr / local / bin / docker-compose

# 설치 확인

docker-compose --version

5. Docker-CE (+ Docker-Compose)에, MySQL 설치 작업

# 설치 폴더 작성

mkdir AttendaceManagement

# 폴더 이동

cd AttendaceManagement

# MySQL 설치 (Ubuntu)

npm install mysql

# MySQL 설치 (CentOs)

yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

yum -y install mysql-community-server

6. docker-compose.yml 작성 작업

# docker-compose.yml 파일 작성

sudo nano docker-compose.yml

sudo vi docker-compose.yml (nano가 설치되지 않은 경우)

# docker-compose.yml 파일 내용 (Mysql 서버에 설치하는 경우)

version : '3'

   services :# MySQL

   db :

   image : mysql

   container_name : mysql_host

   environment :

       MYSQL_ROOT_PASSWORD : <root 패스워드>

       MYSQL_DATABASE : <DB 스키마 이름>

       MYSQL_USER : <user name>

       MYSQL_PASSWORD : <user 암호>

       TZ : 'Asia / Tokyo'

  command : "mysqld --character-set-server = utf8mb4 --collation-server = utf8mb4_ $

  volumes :

      - / var / lib / mysql

      - /etc/mysql/conf.d/my.cnf

      - /docker-entrypoint-initdb.d

  ports :

      - 3306 : 3306

# docker-compose.yml 파일 내용 (Docker에 Mysql이 설치되어있는 경우)

version : '3.7'

  services :

  db :

  image : mysql : 5.7

  container_name : AttendanceManagement_host

  ports :

     - "3306 : 3306"

  volumes : 

     # 초기 데이터를 생성하는 SQL파일이 들어있는 폴더설정

     - ./db/mysql_init:/docker-entrypoint-initdb.d

     # 데이터보존용 폴더설정

     - ./db/mysql_data:/var/lib/mysql

  environment :

     MYSQL_ROOT_PASSWORD : <root 패스워드>

     MYSQL_DATABASE : <DB 스키마 이름>

     MYSQL_USER : <user name>

     MYSQL_PASSWORD : <user 암호>

7. Docker 실행

# Docker 시작

docker-compose up -d

# Docker 시작 확인

docker-compose ps

# Docker 정지

docker-compose down

8. Mysql 설정

# Mysql 연결 (docker-compose.yml의 container_name 연결)

docker exec -it mysql_host bash

# Mysql root 로그인 (-u⇒ 아이디 -p⇒ 암호)

mysql -uroot -proot

# Mysql 로그인 사용자 작성 (docker-compose.yml 사용자 이름, 암호 및 권한 설정)

CREATE USER '사용자 이름'@ '%'IDENTIFIED BY '비밀번호';

GRANT ALL PRIVILEGES ON *. * TO '사용자 이름'@ '%';

flush privileges;

# Mysql tryangle 로그인 (-u⇒ 아이디 -p⇒ 암호)

mysql -u 아이디 -p 암호

9. 서버의 Port 설정

# docker-compose.yml의 Ports를 외부에서 연결해서 즉시 사용할 수 있도록 설정한다.

서버 측의 인바운드 규칙 (인바운드)에 Port3306를 추가한다.

반응형

댓글