EC2에서 Docker MySQL 사용하기 | 우분투 22.04 LTS

yoongyum·2022년 8월 24일
0

도커 공부하기 🐋

목록 보기
7/7
post-thumbnail

🐋Docker 설치

EC2 인스턴스에서 터미널과 연결합니다.

Docker 설치를 위해 서버에 사용가능한 패키지의 최신 목록이 있는지 확인

sudo apt update

📌종속성 설치

지금부터 하는 내용은 Ubuntu 22.04 LTS 버전 기준입니다.
(같은 우분투여도 버전별로 설치법이 다를 수 있습니다.)

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

📌Docker GPG키 추가

Docker 저장소에서 다운로드할 패키지를 서버가 신뢰할 수 있도록 GPG키를 추가해야합니다.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

💡GPG (GNU Privacy Guard)란?
메시지나 파일을 암호화하여 전송할 수 있는 툴.
대칭 키 암호화와 안전한 키 교환을 위한 공개 키 암호화의 조합을 사용하기 때문에 하이브리드 암호화 소프트웨어 프로그램이다.

📌Docker Repository 추가

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

패키지를 다시 최신화 해줍니다.

sudo apt update

📌Docker install

sudo apt install docker-ce

도커가 설치되고 데몬이 시작되며 부팅 시 프로세스가 시작됩니다.
아래코드로 상태를 확인합니다.

sudo systemctl status docker
# 출력내용
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-08-22 06:06:47 UTC; 35min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 613 (dockerd)
      Tasks: 9
     Memory: 49.5M
        CPU: 1.128s
     CGroup: /system.slice/docker.service
             └─613 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

도커를 사용할 때 sudo 명령어를 사용하기 싫으시다면, 아래와 같이 설정해주세요.

sudo usermod -aG docker ${USER}

📌도커 실행 테스트

docker search ubuntu
# 출력 내용
NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                           Ubuntu is a Debian-based Linux operating sys…   14818     [OK]      
websphere-liberty                WebSphere Liberty multi-architecture images …   288       [OK]      
ubuntu-upstart                   DEPRECATED, as is Upstart (find other proces…   112       [OK]      
neurodebian                      NeuroDebian provides neuroscience research s…   92        [OK]      
ubuntu/nginx                     Nginx, a high-performance reverse proxy & we…   57                  
open-liberty                     Open Liberty multi-architecture images based…   54        [OK]      
ubuntu-debootstrap               DEPRECATED; use "ubuntu" instead                46        [OK]      
ubuntu/apache2                   Apache, a secure & extensible open-source HT…   40                  
ubuntu/mysql                     MySQL open source fast, stable, multi-thread…   36                  
kasmweb/ubuntu-bionic-desktop    Ubuntu productivity desktop for Kasm Workspa…   31                  

도커가 제대로 작동하고 있는 걸 확인하실 수 있습니다.



🍿MySql 설치


📌MySql 이미지 다운

docker pull mysql:latest

latest는 최신버전

docker pull mysql:8.0.22

저는 버전을 직접 지정해줬습니다.
tag에 버전을 명시해주면 됩니다.


이미지 확인

docker images

mysql 이미지가 pull된 것을 확인했습니다.


📌MySql 컨테이너 생성/실행

docker run --name {컨테이너 명} -e MYSQL_ROOT_PASSWORD={root 비밀번호} -d -p 3306:3306 mysql:8.0.22

실행 중인 컨테이너 확인

docker ps


📌컨테이너 실행

docker exec -it mysql-container bash

위 명령어에 접속하시면 mysql 터미널에 접속합니다.

root 계정 로그인

mysql -u root -p

위 명령어를 입력하시면 비밀번호를 입력하는 란이 나오고 설정한 비밀번호로 root계정에 접속합니다.

📌Mysql 한글 설정

show variables like 'c%';

character_set이 latin1로 되어있으면 한글이 깨져서 나옵니다.

그래서 이걸 바꿔줘야합니다.

exit

mysql접속을 꺼줍니다.

터미널에서 my.cnf 파일을 수정해줘야합니다.


root@d34907c5ea44:/# cd /etc/mysql

위 명령어로 my.cnf가 있는 디렉토리로 이동합니다.


root@d34907c5ea44:/etc/mysql# ls
conf.d  my.cnf  my.cnf.fallback

ls 명령어로 my.cnf가 있는 걸 확인합니다.


root@d34907c5ea44:/etc/mysql# vi my.cnf

vim 편집기로 my.cnf를 수정해줍니다.

처음 편집기에 들어가시면 저는 이런상태로 되어있습니다.

아래의 코드를 추가해줍니다.

my.cnf

[client]
default-character-set = utf8

[mysqld]
init_connect = "SET collation_connection = utf8_general_ci"
init_connect = "SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci

[mysql]
default-character-set = utf8

📌데이터베이스 생성

mysql> CREATE DATABASE {데이터베이스 이름} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

이로써 데이터베이스 설치까지 완료되었습니다.



👨‍💻구글링으로 도움받은 곳

0개의 댓글