When I started reading about Docker, I was confused about the relationship between Docker file vs docker image vs docker container !
Short answer to my question is:
Docker file is where I need to script my steps on what actions to be done before I make a docker image.
A sample docker file as below:
here below in the code, I am pulling JDK environment in line 1.
copying a java class to app directory in line 2,
setting app as working directory in line 3 for my docker container after i convert image to container.
Then finally running my app in line 4. FROM java:8-jdk-alpine COPY HelloWorld.class /app/ WORKDIR /app ENTRYPOINT [“java”,”HelloWorld”]
Docker image is created using the above docker file by building it. (command : docker build -t myhelloworldapp . )
then spin up the container by using command : docker run myhelloworldapp
Docker Basics
Docker build command is used to generate docker images out of dockerfile line by line instructions. Docker build is managed by docker daemon and not by CLI.
Docker build context can be a set of files in a specified directory or a git repository.
PATH is for directory and URL is for git
dockerignore file is used to ignore not required files.
Docker daemon runs each instructions from Dockerfile and commits each instructions to new Image.
What is Dockerfile, Docker image and Docker container?
When I started reading about Docker, I was confused about the relationship between Docker file vs docker image vs docker container !
Docker file is where I need to script my steps on what actions to be done before I make a docker image. a sample docker file as below: here below in the code,
I am pulling JDK environment in line 1.
Then copying a java class to app directory in line 2,
Then setting app as working directory in line 3 for my docker container after i convert image to container.
Then finally running my app in line 4. FROM java:8-jdk-alpine COPY HelloWorl.class /app/ WORKDIR /app ENTRYPOINT [“java”,”HelloWorld”]
Docker image is created using the above docker file by building it. (command : docker build -t myhelloworldapp . )
Note: dockerfile generates read only layers during the image conversion. These read only layers are created based the dockerfile commandline instructions. Images are considered as executable packages and is predefined. Once it is made, it can not be changed unless new dockerfile is created.
then spin up the container by using command : docker run myhelloworldapp
Web server serves a web content (HTML and static content) over the HTTP protocol.
Application server is a container on which one can build and expose business logic and processes to client applications through various protocols like HTTP. Some cases it will have internal web server. Application server is heavy in terms of resource usage.
Database server refers to the back-end system of a database application using client/server architecture. The database server performs tasks such as data analysis, storage, data manipulation, archiving, and other non-user specific tasks
Amazon Web Services (AWS) is a subsidiary of amazon.com. AWS currently provides more than 100 services and helps to setup high computing power, data storage, queuing, notification, machine learning, security, monitoring services available under AWS management console.
AWS Free Tier includes 750 hours of Linux and Windows t2.micro instances each month for one year as per Amazon website. Please check //aws.amazon.com or //aws.amazon.com/ec2/ website for more accurate details and to confirm this.
The quickest way to learn AWS is by creating free tier aws account by clicking below link.
VPC, EC2, S3, SNS, SQS, ML, Developer tools, Analytics, IAM, Media services etc.
VPC
What is VPC?
VPC lets us to place our AWS resources in a virtual network the way we wanted. As you can see below VPC 3 tier architecture holds the resources and makes a secure communication between the internet and your VPC.
VPC 3 tier architecture using AWS cloud services as below:
here in the above diagram, Availability zone 1 has Web server 1, App server 1 and DB server 1 orchestrated
Similarly, Availability zone 1 has Web server 2, App server 2 and DB server 2 orchestrated.
The load balancer is placed to handle the load between the servers
EC2
What is EC2?
EC2 stands for Amazon Elastic Compute Cloud is a cloud service provides secure, resizable compute capacity. In simple terms it allows us to setup a windows, Linux servers in 2-3 minutes.
How to setup a Windows server and Linux server?
Steps:
AWS Free account gives access to AWS console.
Create a free account and select Linux and Windows t2.micro instances under EC2 option under AWS Dashboard.
Follow the instructions and make sure select “Free Tier Eligible servers” and after learning the process, terminate servers as to avoid the usage of computing services and storage.
Benefits?
Quick – easy to create/terminate servers.
Inexpensive – Gives an option to select the matching server configurations to reduce cost.
Secure – EC2 works along with VPC to provide high security with robust networking features.
Elastic Web scale computing – enable to increase/decrease server capacity in minutes by adding/removing 100 of servers simultaneously.
Integration – easy integration to VPC, S3, RDS etc.
Please click on S3Amazon Simple Storage Service (Amazon S3)
Please click on RDSAmazon Relational Database Service (Amazon RDS)
Please click on VPC– Amazon Virtual Private Cloud (Amazon VPC)
Please click on RPA Amazon Relational Database Service (Amazon RDS)
How to handle the error popup on site security certificate is not trusted with chrome selenium python automation
For Chrome, add –ignore-certificate-errors in following code
options = webdriver.ChromeOptions()
options.add_argument(‘–ignore-certificate-errors’)
driver = webdriver.Chrome(chrome_options=options)
driver.get(‘URL’)
For the Internet Explorer, set acceptSslCerts desired capability as true:
capabilities = webdriver.DesiredCapabilities().INTERNETEXPLORER
capabilities[‘acceptSslCerts’] = True
driver = webdriver.Ie(capabilities=capabilities)
driver.get(‘URL’)