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키를 추가해야합니다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
💡GPG (GNU Privacy Guard)란?
메시지나 파일을 암호화하여 전송할 수 있는 툴.
대칭 키 암호화와 안전한 키 교환을 위한 공개 키 암호화의 조합을 사용하기 때문에 하이브리드 암호화 소프트웨어 프로그램이다.
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
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
도커가 제대로 작동하고 있는 걸 확인하실 수 있습니다.
docker pull mysql:latest
latest는 최신버전
docker pull mysql:8.0.22
저는 버전을 직접 지정해줬습니다.
tag
에 버전을 명시해주면 됩니다.
docker images
mysql
이미지가 pull된 것을 확인했습니다.
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 터미널에 접속합니다.
mysql -u root -p
위 명령어를 입력하시면 비밀번호를 입력하는 란이 나오고 설정한 비밀번호로 root계정에 접속합니다.
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
를 수정해줍니다.
처음 편집기에 들어가시면 저는 이런상태로 되어있습니다.
아래의 코드를 추가해줍니다.
[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
이로써 데이터베이스 설치까지 완료되었습니다.
👨💻구글링으로 도움받은 곳