Skip to main content

Docker - How to create your own Blog/WebApp/Web site?

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

Popular posts from this blog

error: db5 error(11) from dbenv->open: Resource temporarily unavailable

If rpm command is not working in your system and it is giving an error message( error: db5 error(11) from dbenv->open: Resource temporarily unavailable ). What is the root cause of this issue? How to fix this issue?   just a single command- [root@localhost rpm]# rpm --rebuilddb Detailed error message- [root@localhost rpm]# rpm -q firefox ^Cerror: db5 error(11) from dbenv->open: Resource temporarily unavailable error: cannot open Packages index using db5 - Resource temporarily unavailable (11) error: cannot open Packages database in /var/lib/rpm ^Cerror: db5 error(11) from dbenv->open: Resource temporarily unavailable error: cannot open Packages database in /var/lib/rpm package firefox is not installed [root@localhost rpm]# RPM manage a database in which it store all information related to packages installed in our system. /var/lib/rpm, this is directory where this information is available. [root@localhost rpm]# cd /var/lib/rpm ...

Failed to get D-Bus connection: Operation not permitted

" Failed to get D-Bus connection: Operation not permitted " - systemctl command is not working in Docker container. If systemctl command is not working in your container and giving subjected error message then simple solution of this error is, create container with -- privileged option and also provide init file full path  /usr/sbin/init [root@server109 ~]# docker container run -dit --privileged --name systemctl_not_working_centos1 centos:7 /usr/sbin/init For detailed explanation and understanding I am writing more about it, please have look below. If we have a daemon based program(httpd, sshd, jenkins, docker etc.) running inside a container and we would like to start/stop or check status of daemon inside docker then it becomes difficult for us to perform such operations , because by default systemctl and service  commands don't work inside docker. Normally we run below commands to check services status in Linux systems. [root@server109 ~]# systemctl status ...

Docker project

Since last few weekend I am learning Docker. A great initiative from Linux word under IIEC Rise and guidance of Vimal Daga. At the completion of this training I have implemented container technology and created my own monitoring system(Moatis). Project steps:- Pull centos:7 image I created a volume for persistent storage  Launched a container Exposed it to public Login into newly created centos container Deployed Nagios Setup monitoring on few hosts Tested if each and everything is working fine or not. Please check below for all the commands which I have executed to complete this project. Commands I have executed on Container Host -    176  podman container ls   177  podman container ls -a   178  podman image ls   179  podman volume create mymoatis   180  podman volume inspect mymoatis   181  cd /var/lib/containers/storage/mymoatis/_data/   182  ls   183  pod...