docker mysql volume mount 하기.
Updated on
윈도우 환경에서 docker 로 mysql 를 만들어서 사용하려다보니..
volume mount 를 해야할 필요성이 생겼다.
물론 개발 및 테스트 용도이기 때문에 데이터가 그렇게 중요하지는 않지만,
연습할겸 해서 도커 볼륨을 마운트 시키는 것을 글로 작성해본다.
ubuntu에서 mysql 를 설치해서 volume 을 넣어주려고 하니..
잘 안된다..
가능은 하겠지만, 시간 쏟아부어도 안되더라..
그래서 그냥 mysql 이미지를 따로 쓰기로 했다. (당연한건가 ?)
docker-compose.yml 을 생성했고,
version: '3' services: linux: image: linux ports: - 80:8000 - 2500:2500 tty: true links: - db db: restart: always image: mysql:5.7 container_name: db-mysql ports: - "3306:3306" volumes: # Pass volume named mysql-data to mysql container - ./db/mysql_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: testdb MYSQL_USER: test MYSQL_PASSWORD: password
3306 포트를 열어줬으니, 외부에서도 접속이 가능하고,
linux 컨테이너에 links db를 연결해주었으므로,
linux 컨테이너에서 ping 으로 db 를 입력할 경우 송수신 하게 된다.
그리고, db의 컨테이너 이름을 db-mysql 로 했기 때문에
db와 db-mysql 또한 가능해졌다.
그래서 라라벨 env 파일의 DB_HOST 부분에
DB_HOST=db-mysql
로 처리해주게되면, db 컨테이너로 연결해서 사용할 수 있게 된다.
배우기는 조금 복잡하고 어렵지만, 한번 배우면 너무나도 편리한 도커…
CentOS8 에서는 podman ?을 사용한다는데,, 그때에 또 한번 더 복잡할 것 같아서 걱정이긴 하다..
그럼 끝.