일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- niceid_v1.1.jar maven
- Spring
- 배포시 systempath
- maver 외부 jar 배포
- map multivaluemap
- 도커 컨테이너에 mysql
- 자바object다형성
- javascript
- Object
- nice_v1.1.jar
- java object 클래스
- 졸프
- java
- object tostring
- maven 외부 라이브러리 배포
- 외부 라이브러리 jar 배포
- object 다형성
- object배열
- 자바
- maven jar 배포
- maven systempath
- maven repository jar
- JS
- 맥북 port kill
- object다형성
- java object 다형성
- object 배열
- map vs multivaluemap
- 자바스크립트
- 스프링
- Today
- Total
모래블로그
[Docker] Docker 컨테이너에 MySQL 설치하기 본문
Docker 란 ?
Docker(도커)는 컨테이너 기반의 가상화 플랫폼이다.
여기서 컨테이너란 컨테이너가 실행되고 있는 호스트 os의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술을 뜻한다.
다시 말해, 도커는 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술이라고 할 수 있다.
Docker 설치
https://www.docker.com/products/docker-desktop/
위 링크를 통해 Docker를 설치한다.
Docker 설치 확인 방법
도커를 설치 완료 했다면 잘 설치 되어있는지 아래 명령어를 통해 확인할 수 있다.
docker -v
1. MySQL 이미지 가져오기
MySQL 이미지를 먼저 다운받는다.
docker pull mysql
[예시]
2. MySQL 컨테이너 생성 & 실행
docker run --name [컨테이너 이름] -e MYSQL_ROOT_PASSWORD=[패스워드] -d -p 3306:3306 mysql
나의 경우 [컨테이너 이름]을 mysql-container로 설정한 것이다. 본인이 원하는 이름으로 설정하면 되고,
[패스워드]도 본인이 원하는 패스워드로 설정하면 된다.
[예시]
--name [container_name] : 컨테이너 이름을 [container_name]로 설정
-e : 컨테이너 내 환경변수 설정
-e MYSQL_ROOT_PASSWORD=[password] : MYSQL의 root 사용자의 암호를 [password]로 설정
-d : 컨테이너를 백그라운드에서 실행
-p [host-port]:[container-port] : 호스트와 컨테이너 포트를 연결.
ex) -p 3306:3306 -> 호스트에서 3306 포트 연결 시 컨테이너 3306 포트로 포워딩
// 실행 중인 컨테이너만 조회
docker ps
// 모든 컨테이너 조회
docker ps -a
위 명령어를 통해 모든 컨테이너 혹은 실행 중인 컨테이너를 확인할 수 있다.
3. 컨테이너 접속 & 실행하기
docker exec -it [컨테이너 이름] bash
[컨테이너 이름]에는 본인이 위에서 설정한 컨테이너 이름 넣으면 된다.
[예시]
위와 같이 접속한 bash 환경에서 MySQL을 사용하면 된다.
mysql -u root -p로 MySQL의 root 사용자로 로그인한다.
비밀번호는 위에서 설정한 비밀번호 입력 후 접속한다.
[예시]
MySQL 사용자 추가 및 user 권한 설정
1. 데이터베이스 생성
create database [db_name];
원하는 db명을 설정하여 database 생성
[예시]
2. 사용자 추가
create user 'USER_NAME'@'IP_ADDRESS' identified by 'PASSWORD';
- USER_NAME : 새로 생성할 사용자의 이름
- IP_ADDRESS : 해당 사용자가 접근할 수 있는 호스트, %로 설정하면 모든 호스트에서 데이터베이스에 접근 가능
- PASSWORD : 사용자의 패스워드
본인이 원하는대로 설정하면 된다.
[예시]
3. 사용자에게 권한 부여
grant all privileges on [db_name].* to 'USER_NAME'@'IP_ADDRESS';
// 아래 명령어의 경우 모든 데이터베이스와 테이블에 대한 모든 권한 부여
grant all privileges on *.* to 'USER_NAME'@'%'
[예시]
4. 변경사항 적용
flush privileges;
MySQL과 MariaDB는 사용자 권한을 메모리에 캐시 하므로 grant, revoke, set password 등의 명령을 통해 사용자 권한이 변경되더라도 변경사항이 즉시 적용되지 않으며 변경사항이 적용되려면 권한 캐시가 다시 로드 되어야 한다.
flush privileges; 명령은 권한 캐실를 다시 로드하도록 서버에 지시하므로 사용자 권한의 변경사항을 즉시 적용할 수 있다.
따라서 사용자 권한을 변경한 후에는 flush privileges; 를 실행해주어야 한다.
단, 사용자를 추가하는 create user 같은 경우, 자동으로 권한 캐시를 로드하므로 위 명령어를 실행할 필요가 없다.
도커로 생성한 DB를 DBEAVER에서 접속하기
위에서 만든 로컬 DB에 접속해보자.
위에서 생성한대로 port, database, username, password를 각각 입력해준다.
만약 Public Key Retrieval is not allowed 가 발생했을 경우,
Driver properties에서 allowPublicKeyRetrieval을 true로 바꿔준다.
그 후, Test Connection을 실행하면 연결이 완료된다.
Docker의 다양한 명령어들
docker --help 명령어를 통해 사용 가능한 모든 Docker 명령어를 확인할 수 있으며, 주로 사용되는 명령어들은 다음과 같다.
- docker run : Docker 이미지 기반으로 새로운 컨테이너를 생성하고 실행한다. 예를 들어, docker run ubuntu 명령은 ubuntu 이미지를 기반으로 새로운 컨테이너를 나열한다.
- docker ps : 현재 실행 중인 모든 Docker 컨테이너를 나열한다. [-a] 옵션을 추가할 경우(docker ps -a), 실행 중이지 않은 컨테이너를 포함하여 모든 컨테이너를 확인할 수 있다.
- docker stop [container_id] : 실행 중인 Docker 컨테이너를 중지한다. [container_id]는 중지하려는 컨테이너의 ID를 지정하면 되고, docker ps 를 통해 확인할 수 있다.
- docker start [container_id] : 중지된 Docker 컨테이너를 다시 시작한다. 이 명령어에는 컨테이너 ID가 필요하다.
- docker restart [container_id] : Docker 컨테이너를 재시작한다. 이 명령어에는 컨테이너 ID가 필요하다.
- docker rm [container_id] : Docker 컨테이너를 제거한다. 이 명령어에는 컨테이너 ID가 필요하며, 해당 컨테이너는 실행 중이지 않아야 한다.
- docker pull [image_name] : Docker 이미지를 Docker Hub 또는 다른 Docker 레지스트리에서 로컬 시스템으로 다운로드 한다.
- docker rmi [image_id] : 로컬 Docker 시스템에서 Docker 이미지를 제거한다.
- docker logs [container_id] : Docker 컨테이너의 로그를 출력한다.
- docker exec : 실행 중인 컨테이너에서 명령을 실행한다. 예를 들어, docker exec -it [container_id] bash 명령어는 실행 중인 컨테이너에서 bash 쉘을 시작한다.
REFERENCE🙇♀️
https://dkswnkk.tistory.com/697
https://hipopatamus.tistory.com/109
'기타' 카테고리의 다른 글
정규표현식(Regular Expression) (0) | 2024.05.19 |
---|---|
38회 ADsP 데이터분석 준전문가 합격 후기 (0) | 2023.11.22 |
5회 빅데이터분석기사 합격 후기 (1) | 2023.11.22 |