Skip to main content

Secure nginx with Let's Encrypt on Ubuntu 18.04

Deploy Static Website using docker container

In this article we will learn how to deploy static website using docker container. we will use nginx for web server testing.






Create docker file :

To deploy static website we will have to create one docker file to run website. in docker file we will add some text to perform tasks. copy the content below and paste in your docker file.
  • Create directory called docker [you can create any]
mkdir /docker
  • Create docker file in to docker directory and add below context.
vim dockerfile
FROM nginx:alpine

COPY . /usr/share/nginx/html
save file.

1. it will download nginx latest from docker hub.

2. copy all context from working directory to /usr/share/nginx/html.

touch index.html
<h1>Hellow this is my website</h1>
and save the file.
Now we will build the docker image. from the build command it will execute each instruction which we have added in docker file.
docker build -t mywebserver:v1 .
Sending build context to Docker daemon 3.072 kB

Step 1/2 : FROM nginx:alpine

alpine: Pulling from library/nginx

ff3a5c916c92: Pull complete

d81b148fab7c: Pull complete

f9fe12447daf: Pull complete

ad017fd52da2: Pull complete

Digest: sha256:4a85273d1e403fbf676960c0ad41b673c7b034204a48cb32779fbb2c18e3839d

Status: Downloaded newer image for nginx:alpine

 ---> bc7fdec94612

Step 2/2 : COPY . /usr/share/nginx/html

 ---> 86c5b4596840

Removing intermediate container 8a769ed68528

Successfully built 86c5b4596840
Now you can see that build is success and downloaded nginx. we will check image using below command.
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE

mywebserver         v1                  86c5b4596840        About a minute ago   18 MB
Now we will run the image and launch the container from the image. i will bind it port to 9090 as i have already use 80.
docker run -d -p 9090:80 mywebserver:v1

31e18bf6c0337b69ded3328ad7affa45bf68f31253152e12ce099a1a13151975
i have define name of container [mywebserver and tag v1]
  • Now you can see that our container is running.
docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES

31e18bf6c033        mywebserver:v1      "nginx -g 'daemon ..."   37 seconds ago      Up 35 seconds       0.0.0.0:9090->80/tcp   amazing_clarke
Now you can check from web browser using host IP.










Comments

Popular posts from this blog

Another instance of Certbot is already running - Solved - Linux guru

Error : Another instance of Certbot is already runningcertbot --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --installer nginx -d *.vishalvyas.com Another instance of Certbot is already running Reason : when you run certbot form your machine and unexpectedly stop the command, Then cert bot is not running but it left some .certbot.lock files behind.You need to kill the certbot instance form your machine. Solution : Run the below command to find killed certbot.find / -type f -name ".certbot.lock" You can see result of the command, If there are, you can remove them. Run below command to remove them.find / -type f -name ".certbot.lock" -exec rm {} \; And try again.

Install Apache Using Ansible Playbooks

Ansible is a automation tool which is widely used, you can install and install, configure and manage number of system and services remotely. you can install software and manage services and tasks without needing manually log in to each servers. you have to install ansible in one machine and use ssh to communicate host each other.



Ansible uses Playbooks which is written in YAML format. it's uses module base format. with playbook can run multiple tasks at time and provide more advance functionality, YAML file always start with "---" syntax. In this article we will see how to install and configure apahce2 using ansible YAML script. Master server : 10.80.253.11 [Ansible server, ] Slave 1 : 10.80.253.12 [need to install apache2 in slave 1] Slave 2 : 10.80.253.13 [need to install apache2 in slave 2] We need to configure slave server info in our ansible configuration file, click here to know how to add client machine to ansible. Let's update our apache2.yml file and install…

Create aws s3 bucket using cli

In this article i will explain you to how to manage s3 bucket and objects using AWS cli command line interface. for that you will have to configure AWS cli interface to your local linux machine. You can configure cli from. HERE.




After configured aws cli to your local machine, you can run all below commands. How to create bucket using AWS Cli.root@master:~# aws s3 mb s3://linuxgurubucket make_bucket: linuxgurubucket Listing Bucket : To list all bucket : root@master:~# aws s3 ls 2018-05-01 15:28:37 linuxgurubucket To list all objects from bucket :root@master:~# aws s3 ls s3://linuxgurubucket 2018-05-01 15:32:16 71515 vishal.jpg How to copy local file to s3 using aws cp command :root@master:~# aws s3 cp ansible.sh s3://linuxgurubucket/ upload: ./ansible.sh to s3://linuxgurubucket/ansible.sh To check it's upload or not :root@master:~# aws s3 ls s3://linuxgurubucket/ 2018-05-01 15:34:19 82 ansible.sh 2018-05-01 15:32:16 71515 vishal.jpg To remove file from s3 bucket using cli: