Guest User

Untitled

a guest
Nov 14th, 2018
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. # Backup and restore a Docker volume on Mac OS X
  2.  
  3. This is a rough draft for backing up and restoring data contained in a Docker volume. I
  4. can't say that this is a "best practice". For my limited testing at the moment, it seems
  5. sufficient.
  6.  
  7. ## Example `docker-compose.yml`
  8.  
  9. ```yml
  10. version: '3'
  11. services:
  12. db:
  13. image: mysql:5.7
  14. environment:
  15. MYSQL_ROOT_PASSWORD: secret
  16. MYSQL_DATABASE: tacos
  17. MYSQL_USER: tacos
  18. MYSQL_PASSWORD: secret
  19. volumes:
  20. - databasedata:/var/lib/mysql
  21. volumes:
  22. databasedata:
  23. driver: 'local'
  24. ```
  25.  
  26. To start:
  27.  
  28. ```
  29. docker-compose up
  30. ```
  31.  
  32.  
  33. ## Login and interact with MySQL
  34.  
  35. From the host machine, where `DEADBEEF0123` is the ID of the running container.
  36.  
  37. ```
  38. docker exec -it DEADBEEF0123 bash
  39. ```
  40.  
  41. In the container:
  42.  
  43. ```
  44. mysql -u tacos -p
  45. ```
  46.  
  47.  
  48. ## Backup MySQL
  49.  
  50. From the host machine:
  51.  
  52. ```
  53. CONTAINER='DEADBEEF0123'
  54. DIR_TO_BACKUP='/var/lib/mysql'
  55. BACKUP_NAME='backup.tar'
  56. docker run --rm --volumes-from "${CONTAINER}" -v $(pwd):/backup alpine:3.8 tar cvf "/backup/${BACKUP_NAME}" "${DIR_TO_BACKUP}"
  57. ```
  58.  
  59.  
  60. ## Restore MySQL
  61.  
  62. From the host machine:
  63.  
  64. ```
  65. CONTAINER='DEADBEEF0123'
  66. BACKUP_NAME='backup.tar'
  67. docker run --rm --volumes-from "${CONTAINER}" -v $(pwd):/backup alpine:3.8 tar xvf "/backup/${BACKUP_NAME}"
  68. ```
Add Comment
Please, Sign In to add comment