[서버] 4: docker에 mysql컨테이너 만들기

1️⃣ MySQL 설치하기


docker의 실행중인 컨테이너를 모두 종료시키고 다시 하기

: docker ps -a. //목록 확인
: docker rm -f `docker ps -a -q` // 컨테이너 모두 강제로 삭제하기, 이미지는 남음
: docker rmi -f 'docker images' // 모든 이미지 삭제하기

docker images 설치하기

  • dockerHub엔 mysql 이미지가 이미 있으므로 바로 가져오자.
: docker run -d -p 9876:3306 -e MYSQL_ROOT_PASSWORD=[mysql패스워드] mysql:5.6
  • 서버 포트 9876과 mysql 기본포트인 3306을 매칭시킴
  • -e를 통해 환경변수로서 mysql의 패스워드를 설정함
  • 설치할 mysql의 버전을 5.6으로 명시함

 

2️⃣ MySQL 접속하기


Mysql Docker container 접속하기

: docker ps -a #실행된 mysql 컨테이너 id 확인하기
: docker exec -it [컨테이너id] /bin/bash #컨테이너의 bash로 접속
: mysql -u root -p #컨테이너 접속 후, mysql에 진입
: [비밀번호 입력]
: CREATE DATABASE TEST; # 테스트할 데이터베이스 생성
: SHOW DATABASES; # 생성 확인
: exit # mysql 탈출
: exit # 컨테이터 탈출

 

컨테이너 안에 있는 mysql에 ip로 접속하기

: docker ps -a  # docker 컨테이너 확인
: docker inspect [컨테이너id] # 컨테이너 상세정보 확인
  • 이후 나타나는 창에서 IPAddress 확인 ("172.17.0.2”)
: sudo apt install mysql-client-core-5.7
: mysql -u root -p --host 172.17.0.2 --port 3306
: [비밀번호 입력]
: SHOW DATABASES; #이전에 만든 데이터베이스 확인
: exit
  • 접속을 위한 패키지 설치
  • mysql을 해당 ip주소로 3306포트와 연결

 

서버의 포트로 Mysql 접속하기

: docker ps -a
: mysql -u root -p --host 127.0.0.1 --port 9876
: exit
  • 단, 컨테이너는 언제든 사라질 수 있다는 점에서 mysql은 일반적으론 이렇게 컨테이너화 하진 않는다

 

테스트를 위한 mysql user 만들기

: mysql -u root -p --host 127.0.0.1 --port 9876
: use mysql
: CREATE USER 'test'@'%' IDENTIFIED BY '[비밀번호]'
: GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
: FLUSH PRIVILEGES;
  • 유저 생성하고 권한을 주었음

 

3️⃣ 로컬에서 확인하기


AWS 에서 mysql접근을 위한 설정하기

  • 접근 포트 열어줬음

 

WorkBench로 접속하기

이후 접속 확인.