Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

README.md #10517

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<td align="center"><a href="topics/devops/README.md"><img src="images/devops.png" width="75px;" height="75px;" alt="DevOps" /><br /><b>DevOps</b></a></td>
<td align="center"><a href="topics/git/README.md"><img src="images/git.png" width="75px;" height="75px;" alt="Git"/><br /><b>Git</b></a></td>
<td align="center"><a href="#network"><img src="images/network.png" width="75px;" height="75px;" alt="Network"/><br /><b>Network</b></a></td>
<td align="center"><a href="#hardware"><img src="images/hardware.png" width="75px;" height="75px;" alt="Hardware"/><br /><b>Hardware</b></a></td>
<td align="center"><a href="topics/docker/README.md"><img src="images/docker.png" width="75px;" height="75px;" alt="Docker"/><br /><b>Docker</b></a></td>
<td align="center"><a href="topics/kubernetes/README.md"><img src="images/kubernetes.png" width="75px;" height="75px;" alt="kubernetes"/><br /><b>Kubernetes</b></a></td>
</tr>

Expand Down Expand Up @@ -87,6 +87,8 @@
<td align="center"><a href="topics/soft_skills/README.md"><img src="images/HR.png" width="75px;" height="75px;" alt="HR"/><br /><b>Soft Skills</b></a></td>
<td align="center"><a href="topics/security/README.md"><img src="images/security.png" width="75px;" height="75px;" alt="security"/><br /><b>Security</b></a></td>
<td align="center"><a href="#system-design"><img src="images/design.png" width="75px;" height="75px;" alt="Design"/><br /><b>System Design</b></a></td>
<td align="center"><a href="#hardware"><img src="images/hardware.png" width="75px;" height="75px;" alt="Hardware"/><br /><b>Hardware</b></a></td>

</tr>

<tr>
Expand All @@ -97,7 +99,11 @@
<td align="center"><a href="topics/node/node_questions_basic.md"><img src="images/nodejs.png" width="85px;" height="80px;" alt="NodeJs"/><br /><b>NodeJs</b></a></td>
</tr>

<tr>
<td align="center"><a href="topics/jira/README.md"><img src="images/jira.png" width="85px;" height="80px;" alt="jira"/><br /><b>Jira</b></a></td>
</tr>
</table>

</center>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
Expand Down
Binary file added images/docker.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/jira.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 7 additions & 1 deletion topics/cloud/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,16 @@ It's important to note that:

<details>
<summary>Can we replace any type of computing on servers with serverless?</summary><br><b>

No, we cannot replace all types of computing on servers with serverless computing. While serverless computing offers many advantages, such as automatic scaling, cost-efficiency, and reduced operational complexity, it is not a one-size-fits-all solution. The decision to use serverless depends on several factors, including the nature of the workload, performance requirements, cost considerations, and the need for control over the underlying infrastructure.
</b></details>

<details>
<summary>Is there a difference between managed service to SaaS or is it the same thing?</summary><br><b>

Managed services and Software as a Service (SaaS) are not the same, though they are related concepts. A managed service involves a third-party provider taking over the management and operation of specific IT functions or infrastructure for a client, offering a higher level of customization and control based on the client’s specific needs. In contrast, SaaS is a software delivery model where applications are hosted by a service provider and made available to users over the internet, typically in a standardized form with limited customization options. While SaaS can be considered a type of managed service focused on software delivery, managed services encompass a broader range of IT functions beyond just software, including infrastructure management, cybersecurity, and more.


</b></details>

<details>
Expand Down Expand Up @@ -115,4 +121,4 @@ False. Auto scaling adjusts capacity and this can mean removing some resources b
* Instance should have minimal permissions needed. You don't want an instance-level incident to become an account-level incident
* Instances should be accessed through load balancers or bastion hosts. In other words, they should be off the internet (in a private subnet behind a NAT).
* Using latest OS images with your instances (or at least apply latest patches)
</b></details>
</b></details>
97 changes: 97 additions & 0 deletions topics/docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Docker



<details>
<summary>1. What is Docker and how does it differ from a virtual machine?</summary><br><b>
Docker is a platform that allows developers to automate the deployment of applications inside lightweight, portable containers. Unlike virtual machines, which run a full operating system, Docker containers share the host OS kernel, making them more efficient in terms of resource usage and startup time.

</b></details>


<details>
<summary>2. What are the key components of Docker?</summary><br><b>
The key components of Docker include:
- **Docker Engine:** The core service for building and running containers.
- **Docker Images:** Read-only templates used to create containers.
- **Docker Containers:** Executable instances of Docker images.
- **Docker Hub:** A cloud-based registry for sharing Docker images.

</b></details>

<details>
<summary>3. What is a Dockerfile?</summary><br><b>
A Dockerfile is a text file that contains a series of instructions for building a Docker image. It defines the base image, sets up the environment, and specifies the commands to run when creating the container.

</b></details>

<details>
<summary>4. How do you create a Docker image from a Dockerfile?</summary><br><b>
You can create a Docker image from a Dockerfile using the command- docker build -t

</b></details>

<details>
<summary>5. What is the difference between a Docker image and a Docker container?</summary><br><b> A Docker image is a read-only template that defines the environment and filesystem for a container. A Docker container is a running instance of a Docker image, containing everything needed to run an application, including the code, libraries, and environment variables.

</b></details>

<details> <summary>6. How can you list all Docker containers running on your system?</summary><br><b> You can list all running Docker containers using the command: ```bash docker ps ``` To list all containers, including stopped ones, use: ```bash docker ps -a ```

</b></details>

<details> <summary>7. What is Docker Compose and how is it used?</summary><br><b> Docker Compose is a tool for defining and running multi-container Docker applications. With a `docker-compose.yml` file, you can configure all of your application's services, networks, and volumes, and then start them with a single command: ```bash docker-compose up ```

</b></details> <details>

<summary>8. How do you scale services in Docker Compose?</summary><br><b> You can scale services in Docker Compose by using the `--scale` flag followed by the service name and the desired number of instances. For example: ```bash docker-compose up --scale <service_name>=<number_of_instances> ``` This command will start the specified number of instances of the service.

</b></details>

<details> <summary>9. What is Docker Swarm?</summary><br><b> Docker Swarm is Docker's native clustering and orchestration tool. It allows you to manage a cluster of Docker engines as a single swarm, providing high availability, load balancing, and scaling capabilities for your Dockerized applications.

</b></details>

<details> <summary>10. How do you initialize a Docker Swarm?</summary><br><b> You can initialize a Docker Swarm using the command: ```bash docker swarm init ``` This command sets up the current Docker engine as the swarm manager. You can then add worker nodes to the swarm using the token provided by the `docker swarm join-token` command.

</b></details>

<details> <summary>11. What is the purpose of Docker volumes?</summary><br><b> Docker volumes are used to persist data generated and used by Docker containers. Volumes provide a way to store data outside the container's filesystem, allowing it to be shared between containers or preserved after the container stops or is deleted.

</b></details>

<details> <summary>12. How can you create and manage Docker volumes?</summary><br><b> You can create a Docker volume using the command: ```bash docker volume create <volume_name> ``` To list all Docker volumes, use: ```bash docker volume ls ``` To remove a volume, use: ```bash docker volume rm <volume_name> ```

</b></details>

<details> <summary>13. What is a Docker network and how do you create one?</summary><br><b> A Docker network allows containers to communicate with each other. You can create a custom Docker network using the command: ```bash docker network create <network_name> ``` This command creates a new bridge network that you can connect containers to, enabling communication between them.

</b></details>

<details> <summary>14. How do you connect a container to a Docker network?</summary><br><b> You can connect a container to a Docker network using the command: ```bash docker network connect <network_name> <container_name_or_id> ``` This command connects the specified container to the specified network, allowing it to communicate with other containers on the same network.

</b></details>

<details> <summary>15. What is the difference between a bind mount and a volume in Docker?</summary><br><b> A bind mount is a mapping between a directory on the host machine and a directory in the container. The data in the container directly reflects the data in the host directory. A Docker volume, on the other hand, is managed by Docker and stored in a specific location on the host. Volumes are generally preferred for persistent data as they are easier to manage and portable across different environments.

</b></details>

<details> <summary>16. How can you share data between containers in Docker?</summary><br><b> You can share data between containers in Docker by using volumes. Multiple containers can be configured to use the same volume, allowing them to read and write to the shared storage. This can be done by specifying the same volume in the `docker run` or `docker-compose.yml` file for each container.

</b></details>

<details> <summary>17. What is the purpose of the `docker exec` command?</summary><br><b> The `docker exec` command is used to run a command in an already running container. It is often used to access the container's shell or to run additional processes inside the container. For example: ```bash docker exec -it <container_name_or_id> /bin/bash ``` This command opens an interactive shell session in the specified container.

</b></details>

<details> <summary>18. How do you remove unused Docker objects, such as images, containers, and volumes?</summary><br><b> You can remove unused Docker objects using the `docker system prune` command. This command removes all stopped containers, unused networks, dangling images, and unused volumes. You can use the `-a` flag to remove all unused images, not just dangling ones: ```bash docker system prune -a ```

</b></details>

<details> <summary>19. What are Docker tags and how are they used?</summary><br><b> Docker tags are labels that can be applied to Docker images to help identify different versions or variants of the image. Tags are typically used to specify the version of the application or the environment (e.g., `latest`, `1.0`, `stable`). You can tag an image during the build process using the `-t` option: ```bash docker build -t <image_name>:<tag> <path_to_dockerfile> ```

</b></details>

<details> <summary>20. How do you push a Docker image to Docker Hub?</summary><br><b> To push a Docker image to Docker Hub, you first need to log in using the `docker login` command. Then, you can push the image using the `docker push` command: ```bash docker push <username>/<image_name>:<tag> ``` Make sure that the image is tagged with your Docker Hub username before pushing.

</b></details>
Loading