- 로컬에서 mysql, redis에 데이터 저장
- 덤프로 데이터를 포함해서 이미지로 빌드
- 도커 허브에 올리기
- 공유 받을 사람이 도커 허브에서 pull
Mysql 공유
1. 현재 데이터 백업 (덤프) - 로컬에서 실행되고 있는 mysql (도커 x)
mysqldump -u root -p stock_db > stock_db_dump.sql
2. MySQL 컨테이너 생성 및 데이터 복원
docker run --name stock-db-container -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=stock_db -d mysql:8.0
컨테이너가 실행 후, 데이터베이스에 stock_db_dump.sql을 복원
docker cp stock_db_dump.sql stock-db-container:/stock_db_dump.sql
docker exec -i stock-db-container mysql -u root -padmin stock_db < stock_db_dump.sql
3. 컨테이너에서 이미지 생성
이제 컨테이너를 기반으로 이미지를 생성하자.
docker commit stock-db-container qpwisu/stock-db:latest
4. Docker Hub 로그인 및 푸시
Docker Hub에 로그인하고 이미지를 업로드하자.
docker login
docker push qpwisu/stock-db:latest
5. 다른 환경에서 실행하기
이제 다른 환경에서 이 이미지를 실행하면 stock_db가 포함된 상태로 실행됨.
docker run -d --name stock-db-container -e MYSQL_ROOT_PASSWORD=admin -p 3306:3306 qpwisu/stock-db:latest
Redis
1. Redis 컨테이너 실행
docker run --name redis-container -d -p 6379:6379 redis:latest
2. Redis 데이터 백업 (덤프)
Redis 데이터는 /data 경로에 dump.rdb 파일로 저장됨.
docker exec -it redis-container redis-cli SAVE
3. 컨테이너에서 이미지 생성
데이터가 포함된 상태에서 이미지를 생성
docker commit redis-container qpwisu/redis-db:latest
4. Docker Hub 로그인 및 푸시
Docker Hub에 로그인하고 이미지를 업로드
docker login
docker push qpwisu/redis-db:latest
5. 다른 환경에서 실행하기
이제 이 이미지를 다른 환경에서 실행하면 dump.rdb 데이터가 포함된 상태로 Redis가 실행
docker run -d --name redis-container -p 6379:6379 qpwisu/redis-db:latest
위에서 생성한 두 이미지 한번에 pull
1. docker-compose.yml 파일 작성
version: '3.8'
services:
mysql:
image: qpwisu/stock-db:latest
container_name: stock-db-container
restart: always
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: stock_db
ports:
- "3306:3306"
redis:
image: qpwisu/redis-db:latest
container_name: redis-container
restart: always
ports:
- "6379:6379"
2. Docker Compose 실행
docker-compose up -d
'인프라 > 도커' 카테고리의 다른 글
도커 허브 사용법 (+buildx) (0) | 2024.03.15 |
---|---|
도커 자주 쓰이는 커맨드 정리 (0) | 2024.03.15 |