Setting up docker images
Get the following images
- mysql:5.7.9 or later
- wordpress:4.5.2.-apache
MYSQL settings
Memory:
Limited to 128MB
local port | Container port | type |
---|---|---|
32772 | 3306 | tcp |
External | Internal |
---|---|
/docker/mysql/var/lib/mysql | /var/lib/mysql |
Containername | Alias |
---|---|
- | - |
Variable | Value |
---|---|
MYSQL_ROOT_PASSWORD | mysql-root-pw |
WordPress settings
Memory:
Limited to 128MB
local port | Container port | type |
---|---|---|
8080 | 80 | tcp |
External | Internal |
---|---|
/docker/wordpress/var/www/html | /var/www/html |
Containername | alias |
---|---|
wp_mysql | mysql |
Variable | Value |
---|---|
WORDPRESS_DB_USER | root |
WORDPRESS_DB_PASSWORD | mysql-root-pw |
Configure nginx as reverse proxy
# HTTPS redirect to wp_backend with variables set to inform # WordPress application about revese proxy server { listen 443 ssl; server_name wordpress.domain; location / { proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Ssl on; proxy_set_header Host $Host; proxy_pass http://wp_backend:8080/; } ssl_certificate /path to/fullchain.pem; ssl_certificate_key /path to/privkey.pem; add_header Strict-Transport-Security max-age=15768000; } # Permanent redirect to HTTPS from HTTP server { listen 80; server_name wordpress.domain; return 301 https://$host$request_uri; }
Configure WordPress to use correct links
After running the installation part of WordPress you must configure the URLs used on pages and includes.
Log into WordPress and go to: Settings | General and update the following fields
Backing up WordPress DB
- Change your directory to the directory you want to export backup to:
user@linux:~> cd files/blog user@linux:~/files/blog>
2. Use mysqldump
command with your MySQL server name, user name and database name. It prompts you to input password. (For help, try: man mysqldump
.)
- To backup all database tables
mysqldump --add-drop-table -h mysql_hostserver -u mysql_username -p mysql_databasename
- To backup only certain tables from the database
mysqldump --add-drop-table -h mysql_hostserver -u mysql_username -p mysql_databasename mysql_tablename1 mysql_tablename2 mysql_tablename3
Example:
user@linux:~/files/blog> mysqldump --add-drop-table -h db01.example.net -u dbocodex -p wp > blog.bak.sql Enter password: (type password)
3. Use bzip2
to compress the backup file
user@linux:~/files/blog> bzip2 blog.bak.sql
You can do the same thing that above two commands do in one line:
user@linux:~/files/blog> mysqldump --add-drop-table -h db01.example.net -u dbocodex -p wp | bzip2 -c > blog.bak.sql.bz2 Enter password: (type password)
The bzip2 -c
after the | (pipe) means the backup is compressed on the fly, and the > blog.bak.sql.bz2
sends the bzip
output to a file named blog.bak.sql.bz2
.
Despite bzip2 being able to compress most files more effectively than the older compression algorithms (.Z, .zip, .gz), it isconsiderably slower (compression and decompression). If you have a large database to backup, gzip is a faster option to use.
user@linux:~/files/blog> mysqldump --add-drop-table -h db01.example.net -u dbocodex -p wp | gzip > blog.bak.sql.gz