Prerequisites Download blockchain clients Each container is isolated from the host machine and is deployed with it’s own CPU, memory, and network.įor a great introduction to Docker concepts check out Preethi Kasireddy’s article at. Containers contain everything required to run the application ranging from packaged libraries to environment variables and much more. What is Docker?ĭocker is a tool that allows you to create, deploy and manage applications in containers. Each container image is given a hash, which can be used to manage application releases allowing for easy rollback / implementation of multiple versions of a blockchain client. Containers ship with their dependencies explicitly stated and packaged with the application, with environment specific configuration either laid out in a configuration file or coded into the environment variables. In the past, one of the largest peeves among developers is for an application to run well on their local machine only to fail in testing or production environments. This combined with CI / CD tools like CircleCI will make deployment to production environments much faster. It also means that we are agnostic to the host operating system / cloud provider so long as the platform supports Docker, it can run our application. Whether we are upgrading the client version or adding a new blockchain client to the machine altogether, we will produce a new container image which can be pushed to external Docker repositories like Amazon (ECR), Dockerhub for easy access. Damage done to a blockchain client running inside the container is mostly limited to that container. Isolation means that each container is unable to view other containers and the host’s running processes and resources, which reduces the surface area for attackers.
Why run a full a node? Learning Objectives Today, we will be talking about - Part 1: Containerization Bitcoin and Ethereum using Docker.
This article is the part 1 of 3 series on How to manage your full nodes.