개념
이미지 - 컨테이너를 만들기 위한 하나의 완성된 서비스
컨테이너 - 이미지를 통해 생성되며 하나의 실행 프로세스이다. (컴퓨팅 자원을 할당받아 실행된다.)
객체지향의 클래스와 객체 개념에 비유한다. 클래스 : 객체 = 이미지 : 컨테이너 // 하나의 이미지로 복수 컨테이너 생성 및 실행
도커에 MYSQL 이미지 다운로드 절차
- 도커 설치 명령어 창에서
docker -v
를 입력하여 잘 설치되었는지 확인 - 명령어 창에서
docker pull mysql:5.7.32
를 입력
MYSQL 이미지 컨테이너로 실행
docker run -d -p <PORT>:<PORT> -e MYSQL_ROOT_PASSWORD=<ROOT_PASSWORD> --name <CONTAINER_NAME> <IMAGE_NAME>
명령어 실행- 위를 적용하면 오른쪽과 같다.
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name mysql-container mysql:5.7.32
docker ps -a
명령어를 실행하여 프로세스가 정상적으로 실행되고 있는지 확인
활성화된 컨테이너 접속
docker exec -i -t <CONTAINER_NAME> bash
명령어 실행mysql -uroot -ppassword
명령어를 통해서 데이터베이스 접속확인
MYSQL 워크벤치에서 도커로 생성한 mysql에 접속
- MySQL Connections 추가
- 기본 정보값 입력하고, 우측 정보창에 위에 생성한 컨테이너의 포트, ip 값 입력 (루트 계정으로 해야함)
- Test Connection을 눌러서 접속 여부 확인
- 접속
MYSQL 새로운 유저 생성하기
- docker 컨테이너 실행 및 root 계정으로 mysql 접속
use mysql;
명령어 실행create user <NEW_ACCOUNT_NAME>@<접속 가능 IP> identified by '<NEW_ACCOUNT_PW>';
명령어 실행 // 접속 가능 IP 값에 '%'를 주면 모든 ip에서 접속 허용
MYSQL 유저 권한 부여
- docker 컨테이너 실행 및 root 계정으로 mysql 접속
grant all privileges on '<DATABASE_NAME>.<TABLE_NAME 전체허용시 *>' to <ACCOUNT_NAME>@<접속 가능 IP> identified by '<ACCOUNT_PW>';
실행flush privileges
실행show grants for <ACCOUNT_NAME>@<접속 가능 IP>;
실행하여 권한 적용 확인
MYSQL 유저 권한 해제
- docker 컨테이너 실행 및 root 계정으로 mysql 접속
revoke all on '<DATABASE_NAME>.<TABLE_NAME 전체허용시 *>' from <ACCOUNT_NAME>@<접속 가능 IP>;
실행show grants for <ACCOUNT_NAME>@<접속 가능 IP>;
실행하여 권한 적용 확인
'Study' 카테고리의 다른 글
WebRTC 개념정리 (0) | 2021.01.29 |
---|---|
캐시와 캐싱서버 (0) | 2020.12.10 |