Let's convert lockdown days into Learning days and today's learning is :-
1. Started with what is Wordpress, what is it and how it work?
2. Created a architecture of how I can create my own blog?
For this I need WordPress and MySQL two docker images so lets pull them from docker hub and start with implementation.
[root@server109 ~]# docker pull wordpress:5.1.1-php7.3-apache
[root@server109 ~]# docker pull mysql:5.7
3. Created two storage in docker one for mysql and another is for WordPress container
[root@server109 ~]# docker volume create mywp-storage
mywp-storage
[root@server109 ~]# docker volume create mysql-storage
mysql-storage
4. Launch a MySQL container with environment variable (-e option) database, username, customized storage(created previously
[root@server109 ~]# docker container run -dit -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_USER=rakesh -e MYSQL_PASSWORD=redhat -e MYSQL_DATABASE=mydb -v mysql-storage:/var/lib/mysql --name mysql_container mysql:5.7
5. Launch another container and here I used mysql container created above
[root@server109 ~]# docker container run -dit -e WORDPRESS_DB_HOST=mysql_container -e WORDPRESS_DB_USER=rakesh -e WORDPRESS_DB_PASSWORD=redhat -e WORDPRESS_DB_NAME=mydb -v mywp-storage:/var/www/html --name mywp_container -p 8080:80 --link mysql_container wordpress:5.1.1-php7.3-apache
6. One interesting think I have done in this which that I have exposed WordPress container(PAT -p 8080:80) so that I can access my web app anywhere in my network and if I use public IP then it will be accessible from anywhere using internet.
7. Things are working fine but it was a manual process. So to automate I'll move on Docker-Compose. It is infrastructure-as-code for docker.
8. Created an infrastructure using docker-compose
[root@server109 ~]# mkdir /mydocker-workspace
[root@server109 ~]# cd /mydocker-workspace
[root@server109 ~]# vim docker-compose.yml
Please check below for docker-compose file content
Note:- Format(Indentation) is very mandatory
[root@server109 mydocker-workspace]# cat docker-compose.yml
version: '3'
services:
mysql_container:
image: mysql:5.7
volumes:
- mysql-storage-new:/var/lib/myswql
restart: always
environment:
MYSQL_ROOT_PASSWORD: redhat
MYSQL_USER: rakesh
MYSQL_PASSWORD: redhat
MYSQL_DATABASE: mydb
mywp_container:
image: wordpress:5.1.1-php7.3-apache
volumes:
- mywp-storage-new:/var/www/html
restart: always
depends_on:
- mysql_container
ports:
- 8081:80
environment:
WORDPRESS_DB_HOST: mysql_container
WORDPRESS_DB_USER: rakesh
WORDPRESS_DB_PASSWORD: redhat
WORDPRESS_DB_NAME: mydb
volumes:
mysql-storage-new:
mywp-storage-new:
Comments
Post a Comment
Please share your experience.....