1. 도커 설치전 (한줄 씩 실행)
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
2. 결과 화면
3. 도커 ce 설치
sudo apt install docker-ce
4. 설치확인
sudo systemctl status docker
5. 도커 그룹 만들기
# docker 그룹 만들기
sudo groupadd docker
# 사용자를 docker 그룹에 추가
sudo usermod -aG docker $ USER (sudo 생략가능해짐)
# 도커 버전 확인
docker -v
6. 도커에 mysql 설치 (온라인 레포지토리에서 mysql 이미지 pull )
docker pull mysql
7. 도커 이미지 목록 확인
docker images
8. 도커 컨테이너 생성
#1 ) docker network create test (컨테이너간 통신 네트워크 생성)
#2 ) docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=패스워드 -d -v
/home/docker/mysql/var/lb/mysql:/var/lib/mysql -p 3306:3306 --network test mysql:latest
* -v 는 " 클라우드 host 서버 경로 : 컨테이너 접속 후 경로 " 이며 이렇게 매핑하면 컨테이너가 제거 되어도 클라우드 host 서버 로컬 경로에 백업되어있기 때문에 똑같은 명령문으로 다시 컨테이너를 생성 해도 db 데이터는 그대로 남아있음 *
9. 컨테이너 목록
docker ps -a
* 위의 status 가 exited 되어 있으면 docker logs [컨테이너 이름 ] 으로 확인 및 검색 , mysql 의 경우 아래와 같은 에러 로그 발생 시 https://junho85.pe.kr/1456
10. mysql 컨테이너 접속
sudo docker exec -it [컨테이너이름] bash
mysql -u root -p
password 는 도커컨테이너 생성 시 지정한 패스워드
11. 데이터베이스 (스키마) 및 계정 생성
# 사용자 정보 확인
mysql> SELECT User, Host, authentication_string FROM mysql.user
# board 라는 데이터 베이스 만들고 확인
mysql> CREATE DATABASE board;
mysql> SHOW DATABASES
# board 데이터베이스를 사용할 계정 test1 만들고 확인
mysql> CREATE USER 'test1'@'localhost' IDENTIFIED BY 'mysql비번';
mysql> FLUSH PRIVILEGES;
mysql> SELECT User, Host, authentication_string FROM mysql.user;
#board 데이터베이스를 사용할 계정 test1 에 권한 부여 (test1 사용자정의 계정에서 board 스키마 접근가능)
mysql> GRANT ALL PRIVILEGES ON 데이터베이스이름.* TO 'bbb'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> SHOW GRANTS FOR'bbb'@'localhost';
mysql> SELECT User, Host, authentication_string FROM mysql.user;
#test1 계정에 외부 ip 에서 접근가능한 권한 주기 (타 pc 에서 클라우드 서버로 해당계정으로 접근유효)
mysql > create user 'test1'@'%';
mysql > grant all privileges on 데이터베이스이름.* TO 'test1'@'%' ;
mysql> FLUSH PRIVILEGES;
mysql> SHOW GRANTS FOR'bbb'@'%';
mysql> SELECT User, Host, authentication_string FROM mysql.user;
12. 스키마 접속 및 db 구축
13. mysql 종료
mysql > exit ;
다음은 스프링부트 프로젝트 빌드 및 도커허브 푸시
'AWS CLOUD SERVER 배포 (feat. UBUNTU)' 카테고리의 다른 글
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(6)- (0) | 2021.09.16 |
---|---|
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(4)- (0) | 2021.09.16 |
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(3)- (0) | 2021.09.16 |
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(2)- (0) | 2021.09.16 |
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(1)- (0) | 2021.09.16 |