computer_science:docker:docker_dokuwiki_portable

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
computer_science:docker:docker_dokuwiki_portable [2020/07/24 13:49] carlossousacomputer_science:docker:docker_dokuwiki_portable [2023/12/01 12:07] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Docker - DokuWiki (with docker volume host directory for portability and direct access to data) ====== ====== Docker - DokuWiki (with docker volume host directory for portability and direct access to data) ======
  
-This documentation was done using **Ubuntu Server 20.04 LTS** as a VirtualMachine, virtualized via **VirtualBox 6.1.8.**+The main objective is to have:
  
-Ubuntu was configured to use LVM.+  - Easy to backup / restore data from DokuWiki a.k.a. sleeping with mind at ease. 
 +  - Easy portability a.k.a. I can have the Wiki run from my own Laptop in case of a major failure 
 +  - Small footprint a.k.a. A VM would take something between 10-20 GB to take with me. This way I can take the Docker Image and it's data in less then 2 GB. 
 + 
 +This documentation was done using **Ubuntu Server 20.04 LTS**  as a VirtualMachine, virtualized via **VirtualBox 6.1.8. **Ubuntu was configured to use LVM
 + 
 +This documentation was also used successfully to deploy to a VPS. 
 + 
 +I will be using a pre-made image from [[https://hub.docker.com/u/mprasil|https://hub.docker.com/u/mprasil]], found under [[https://hub.docker.com/r/mprasil/dokuwiki|https://hub.docker.com/r/mprasil/dokuwiki]]. A copy of the Documentation from the Docker Image can be found [[:computer_science:docker:references:mprasil_dokuwiki|here]].
  
 I'm assuming you already have Docker and Docker-Compose installed. I'm assuming you already have Docker and Docker-Compose installed.
  
-if not, go ahead and install them (sudo apt-get install docker -y && sudo apt-get install docker-compose -y)+If not, go ahead and install them
 + 
 +<code bash> 
 +sudo apt install docker -y && sudo apt install docker-compose -y 
 + 
 + 
 +</code> 
 + 
 +---- 
 + 
 +===== Preparations due to LVM =====
  
-First, after installing Ubuntu, we should expand the LVM to use the entire Fee Space available. This is/was an issue at the time of writing (17/07/2020)+First, after installing Ubuntu, we should expand the LVM to use the entire Free Space available. This is/was an issue at the time of writing (17/07/2020)
  
 <code bash> <code bash>
Line 43: Line 61:
 </code> </code>
  
-Let's add ourselfs to the Docker Group so we don't have to prefix every command from Docker with 'sudo'+---- 
 + 
 + 
 +===== Avoiding "sudo docker command" ===== 
 + 
 +Let's add ourselfs to the Docker Group so we don't have to prefix every Docker command with 'sudo'
  
 <code bash> <code bash>
Line 51: Line 74:
 </code> </code>
  
-Now let'create docker volume, which points to a local folder, so we can manipulate / migrate / backup the data easily if needed.+---- 
 + 
 +===== Creating the Volumes for Data ===== 
 + 
 +Now we need to create the docker volumes, which points to a local folder, so we can manipulate / migrate / backup the data easily if needed.
  
 ^General Example^Pratical Example| ^General Example^Pratical Example|
Line 67: Line 94:
 --driver local \ --driver local \
 --opt type=none \ --opt type=none \
---opt device=/media/share/UbuntuDocker/dokuwiki/storage/data \+--opt device=/media/docker-user/dokuwiki/storage/data \
 --opt o=bind dokuwiki_data --opt o=bind dokuwiki_data
  
Line 73: Line 100:
 </code>       | </code>       |
  
-We can either create all volumes and directories necessary manually, or use this script to create the folders and volumes in one go:+We can either create all volumes and directories necessary manually, or use this script - **create_volumes.sh** to create the folders and volumes in one go:
  
 <code bash> <code bash>
Line 84: Line 111:
 docker volume create --driver local --opt type=none --opt device="$STORAGE_PATH"/storage/lib/tpl --opt o=bind dokuwiki_lib-tpl docker volume create --driver local --opt type=none --opt device="$STORAGE_PATH"/storage/lib/tpl --opt o=bind dokuwiki_lib-tpl
 docker volume create --driver local --opt type=none --opt device="$STORAGE_PATH"/storage/logs --opt o=bind dokuwiki_logs docker volume create --driver local --opt type=none --opt device="$STORAGE_PATH"/storage/logs --opt o=bind dokuwiki_logs
 +
  
 </code> </code>
  
-After that we can create our docker-compose.yml which will be used to manage our container:+---- 
 + 
 +===== Creating the docker-compose.yml file ===== 
 + 
 +After that we can create our **docker-compose.yml**  which will be used to manage our container:
  
 <code bash> <code bash>
Line 115: Line 147:
         - dokuwiki_lib-tpl:/dokuwiki/lib/tpl         - dokuwiki_lib-tpl:/dokuwiki/lib/tpl
         - dokuwiki_logs:/var/log         - dokuwiki_logs:/var/log
 +
  
 </code> </code>
  
 +----
 +
 +===== Starting the Container =====
 +
 +Finally, if you already have Data from your previous DokuWiki, you can just copy/paste them in those previous created folders. Else you will just start a new DokuWiki once you start up the container. A few usefull commands to manage the container with docker-compose
 +
 +^Command^Purpose|
 +|docker-compose up -d|Starts the Container and dettach (so you have your bash prompt back)|
 +|docker-compose down|Stops the Container|
 +|docker-compose ps|Checks the status of the Container|
 +
 +Your container should now be accessible via [[http://<VM/HOST_IP|http://<VM/HOST_IP]]>.
 +
 +Do note that https:// isn't available, since the container isn't listening on port 443. //
 +
 +----
 +
 +===== Backing Up / Migrating the Data =====
 +
 +We can easily migrate the data by grabbing everything in the mounted volumes and collecting them into a tar(ball).
 +
 +To do that we can create a file called **backtup_to_tar.sh** which when run will grab everything from //SOURCE_PATH// and output it into //BACKUP_PATH// with the name "dokuwiki_backup-date-time.tar" ex.: dokuwiki_backup-2020-07-24-13-21.tar
 +<code bash>
 +#!/bin/bash
 +SOURCE_PATH="/home/docker-user/dokuwiki"
 +BACKUP_PATH="/home/docker-user/backups"
 +BACKUP_NAME="dokuwiki_backup"
 +tar cvf "$BACKUP_PATH"/"$BACKUP_NAME"-$(date +"%Y-%m-%d-%H-%M").tar -C "$SOURCE_PATH"
 +
 +
 +</code>
  
  
  • computer_science/docker/docker_dokuwiki_portable.1595598549.txt.gz
  • Last modified: 2023/12/01 12:07
  • (external edit)