포트폴리오용 인스턴스들의 데이터베이스가 자꾸만 죽는다.
왜인지 도무지 모르겠다. 일단 도커화를 시켜보자.
Oracle Cloud Always Free tier, Ubuntu 18.04 기준
다음 커맨드들을 차례로 입력하자
$ sudo apt update
$ sudo apt-get remove docker docker-engine docker.io
$ sudo apt install docker.io -y
$ sudo systemctl start docker
$ sudo systemctl enable docker
$ sudo docker --version
docker의 버전이 정상적으로 출력되면 설치 완료
출처: https://phoenixnap.com/kb/how-to-install-docker-on-ubuntu-18-04
로컬 데이터베이스를 클라우드로 옮기기 위해서 백업을 한다.
$ sudo mysqldump -u{유저} -p {데이터베이스 이름} > {저장하고 싶은 파일 이름}.sql
$ sudo apt remove --purge mysql* -y
$ sudo apt autoremove -y
$ sudo apt autoclean -y
$ sudo apt remove dbconfig-mysql -y
출처: https://linuxscriptshub.com/uninstall-completely-remove-mysql-ubuntu-16-04/
다음과 같은 docker-compose.yml
을 작성하자
version: "3"
services:
db:
image: {사용하고자 하는 이미지}:{사용하고자 하는 태그}
container_name: {컨테이너 이름}
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "{데이터베이스 루트 유저 비밀번호}"
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- ~/data/saojeong/:/var/lib/mysql
- ./{아까 백업한 sql파일이름}.sql:/docker-entrypoint-initdb.d/{아까 백업한 sql파일이름}.sql
volumnes
속성에 작성한 녀석들을 토대로 로컬 스토리지에 데이터를 마운트 해놓기 때문에 데이터 유실을 걱정할 필요가 없다.
또, 컨테이너가 실행되며 sql
파일이 import된다.
파일 작성을 완료 했으면 docker-compose
를 사용하기 위해서 설치를 해야한다
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
최신 버전은 항상 공식 문서에서 확인해주세요
설치를 완료 했으면 docker-compose.yml
파일과 {위에서 만든 백업 sql}.sql
을 하나의 폴더에 넣은 후 다음 커맨드를 입력한다.
$ sudo docker-compose up -d
sudo docker ps -a
을 입력해서 STATUS
에 Up ...
이 유지되면 성공이다.