성능을 떠나서 로컬 개발시 도커로 인프라를 구성하면 조금 관리하기 편한 면이 있을 것 같아 docker 로 mysql 을 올려봤다.
간단히 docker 명령어 만으로 mysql을 올려보자.
1. mysql docker 이미지 다운로드
태그에는 MySQL 버전을 명시하며. 만약 태그에 버전을 명시하지 않으면, 최신 버전인 latest를 가져온다.
docker pull mysql:lastest
2. docker 이미지 확인
docker images
3. 저장소 설정
- 호스트의 /Users/{내계정}/{마운트시킬폴더명} 디렉토리를 컨테이너의 /var/lib/mysql 디렉토리로 마운트
- docker에 mysql과 같은 DB를 설치하는 경우 컨테이너 삭제와 함께 데이터도 날라가므로, 저장소는 반드시 외부 저장소를 사용한다.
4. docker 실행 명령어
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name jun-mysql -v /Users/사용자명/마운트시킬폴더명:/var/lib/mysql mysql:버젼
위를 보면 docker 실행명령어가 너무 길다.
그래서 docker-compose 라는 docker 기능을 이용하여 docker 를 실행시키자
5. docker-compose 로 실행
아무 폴더경로에, 실행시키고자 하는 파일경로
docker-compose.yml 파일 생성.
version: "3.3" # 파일 규격 버전
services: # 이 항목 밑에 실행하려는 컨테이너 들을 정의
db: # 서비스 명
image: mysql:5.7 # 사용할 이미지\
container_name: jun-mysql # 컨테이너 이름 설정
ports:
- "3306:3306" # 접근 포트 설정 (컨테이너 외부:컨테이너 내부)
environment: # -e 옵션
MYSQL_ROOT_PASSWORD: '루트 비밀번호' # MYSQL 패스워드 설정 옵션
MYSQL_USER: '계정'
MYSQL_PASSWORD: '비밀번호'
volumes:
- /Users/{계정명}/{마운트할 폴더명}:/var/lib/mysql
위와 같이 docker-compose.yml 이라는 명으로 파일 만든뒤
해당 파일 있는 경로에서 명령어로 파일 실행
-
백그라운드로 실행시 -d 옵션으로 실행
docker-compose up -d
6. docker 프로세스 확인
docker ps -a
7. mysql 컨테이너 접속
docker exec -it jun-mysql bash
여기서 jun-mysql 은 도커 컨테이너 명이다.
8. 주의사항
mysql 이 8 버젼 부터는 password 인증방식이 mysql_native_password 에서 caching_sha2_password 로 변경 되어 config 파일 변경 및 docker 실행 후 유저에 대한 인증 방식을 각각 native 로 바꿔줘야 한다.
방법1
config 파일 생성.$ sudo nano /usr/local/opt/mysql/config/my.cnf
`
파일추가 내용[mysqld] default-authentication-plugin=mysql_native_password
방법 2
mysql bash shell 접속 후docker exec -it CONTAINER_ID bash
루트계정으로 로그인.mysql --user=root --password
각 계정의 패스워드 디폴트 인증방식 변경.ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';
두가지 방법으로도 나는 해보지는 않았다.
그냥 매번 새로운 환경마다 docker-compose 로 올리면 수정을 해줘야 해서, 5.7 로 버젼을 명시하고 사용했다.
'인프라 > docker' 카테고리의 다른 글
[docker] 도커 jenkins 시작하기 (0) | 2020.12.18 |
---|---|
[docker] kafka docker 시작하기 (0) | 2020.11.15 |
[docker] MongoDB 도커 설치 및 실행(몽고디비) (0) | 2020.09.22 |
[docker] 도커 기본 명령어 (0) | 2020.07.04 |
[docker] mac 도커 설치하기 (0) | 2020.07.04 |