Containerization Deployment â
āļāļēāļĢāđāļāđ Docker āđāļāļāļēāļĢāļŠāļĢāđāļēāļ container āļŠāļģāļŦāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļ āđāļĨāļ°āđāļāđ Kubernetes āļŦāļĢāļ·āļ Docker Swarm āđāļāļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļĢ deploy container āđāļŦāļĨāđāļēāļāļąāđāļ āļāđāļ§āļĒāđāļāļāļēāļĢāļāļąāļāļāļēāļĢāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāđāļĨāļ°āļāļēāļĢāļāļĒāļēāļĒāļāļąāļ§āļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
Build a Docker Image just like how you would configure a VM
Docker â
Docker āđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāļāđāļ§āļĒāđāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļĨāļ°āļāļąāļāļāļēāļĢ container āļāļķāđāļāđāļāđāļāļŦāļāđāļ§āļĒāđāļĨāđāļ āđ āļāļāļāļāļāļāļāđāđāļ§āļĢāđāļāļĩāđāļāļĢāļĢāļāļļāđāļāđāļāđāļĨāļ°āļāļēāļĢāļāļķāđāļāļāļĒāļđāđāļāļąāđāļāļŦāļĄāļāļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļ
āļāļēāļĢāļŠāļĢāđāļēāļāđāļĨāļ°āđāļāđ Docker â
āļāļīāļāļāļąāđāļ Docker:
āļŠāļĢāđāļēāļāđāļāļĨāđ Dockerfile: āļāļąāļ§āļāļĒāđāļēāļāđāļāļĨāđ
Dockerfile
āļŠāļģāļŦāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļ Node.js:Dockerfile# āđāļāđāļ āļēāļāļāļ·āđāļāļāļēāļāļāļāļ Node.js FROM node:14 # āļāļąāđāļāļāđāļēāļirectoryāļāļģāļāļēāļāđāļ container WORKDIR /app # āļāļąāļāļĨāļāļāđāļāļĨāđ package.json āđāļĨāļ° package-lock.json COPY package*.json ./ # āļāļīāļāļāļąāđāļ dependencies RUN npm install # āļāļąāļāļĨāļāļāđāļāļĨāđāđāļāļĢāđāļāļāļāļąāđāļāļŦāļĄāļāđāļāļĒāļąāļ container COPY . . # āđāļāļīāļāļāļāļĢāđāļāļāļĩāđāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļ°āļĢāļąāļ EXPOSE 3000 # āļāļģāļŠāļąāđāļāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļ CMD ["npm", "start"]
āļŠāļĢāđāļēāļ Docker Image:
bashdocker build -t my-app .
āļĢāļąāļ Docker Container:
bashdocker run -p 3000:3000 my-app
Kubernetes â
Kubernetes āđāļāđāļāļĢāļ°āļāļāļāļĩāđāļāđāļ§āļĒāđāļāļāļēāļĢāļāļąāļāļāļēāļĢ container āđāļāļāļāļĢāļ°āļāļēāļĒ āļĢāļ§āļĄāļāļķāļāļāļēāļĢāļāļĢāļąāļāļāļāļēāļ āļāļēāļĢāļāļąāļāđāļāļ āđāļĨāļ°āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļŠāļāļēāļāļ°āļāļāļ container
āļāļēāļĢāļāļīāļāļāļąāđāļ Kubernetes â
āļāļīāļāļāļąāđāļ Kubernetes:
āļāļīāļāļāļąāđāļ Minikube āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļĢāļąāļ Kubernetes āđāļāđāļāļĢāļ·āđāļāļ:
āđāļĢāļīāđāļĄ Minikube:
bashminikube start
āļāļēāļĢāļāļĢāļąāļāđāļāđāđāļāļāļāļĨāļīāđāļāļāļąāļāļāđāļ§āļĒ Kubernetes â
āļŠāļĢāđāļēāļāđāļāļĨāđ Deployment: āļāļąāļ§āļāļĒāđāļēāļāđāļāļĨāđ
deployment.yaml
āļŠāļģāļŦāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļ Node.js:yamlapiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-app image: my-app:latest ports: - containerPort: 3000
āļŠāļĢāđāļēāļāđāļāļĨāđ Service: āļāļąāļ§āļāļĒāđāļēāļāđāļāļĨāđ
service.yaml
:yamlapiVersion: v1 kind: Service metadata: name: my-app-service spec: type: NodePort selector: app: my-app ports: - port: 3000 targetPort: 3000 nodePort: 30001
āļāļĢāļąāļāđāļāđ Deployment āđāļĨāļ° Service:
bashkubectl apply -f deployment.yaml kubectl apply -f service.yaml
āđāļāđāļēāļāļķāļāđāļāļāļāļĨāļīāđāļāļāļąāļ:
bashminikube service my-app-service
Docker Swarm â
Docker Swarm āđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāđāļāđāđāļāļāļēāļĢāļāļąāļāļāļēāļĢ container āđāļāļāļāļĢāļ°āļāļēāļĒ āđāļāļĒāļĄāļĩāļāļēāļĢāļāļģāļāļēāļāļāļĩāđāļāđāļēāļĒāļāļ§āđāļē Kubernetes
āļāļēāļĢāđāļāđ Docker Swarm â
āļŠāļĢāđāļēāļ Swarm Cluster:
bashdocker swarm init
āļŠāļĢāđāļēāļ Service: āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāļŠāļĢāđāļēāļ Service āļŠāļģāļŦāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļ Node.js:
bashdocker service create --name my-app --publish published=3000,target=3000 my-app
āļāļĢāļ§āļāļŠāļāļ Service:
bashdocker service ls
āļŠāđāļāļĨ Service:
bashdocker service scale my-app=3
āļĨāļ Service:
bashdocker service rm my-app
āļŠāļĢāļļāļ â
āļāļēāļĢāđāļāđ Docker āđāļāļāļēāļĢāļŠāļĢāđāļēāļ container āļŠāļģāļŦāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļ āđāļĨāļ°āļāļēāļĢāđāļāđ Kubernetes āļŦāļĢāļ·āļ Docker Swarm āđāļāļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļĢ deploy container āļāđāļ§āļĒāđāļŦāđāļāļēāļĢāļāļąāļāļāļēāļĢāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāđāļĨāļ°āļāļēāļĢāļāļĒāļēāļĒāļāļąāļ§āļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļāđāļāđāļāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļĨāļ°āļĒāļ·āļāļŦāļĒāļļāđāļ
Containerization Deployment āļāđāļ§āļĒāđāļŦāđāļāļēāļĢāļāļąāļāļāļēāļĢāđāļāļāļāļĨāļīāđāļāļāļąāļāļĄāļĩāļāļ§āļēāļĄāđāļāđāļāļĄāļēāļāļĢāļāļēāļ āļŠāļ°āļāļ§āļ āđāļĨāļ°āļāđāļēāļĒāļāđāļāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļāđāļĨāļ°āļāļģāļĢāļļāļāļĢāļąāļāļĐāļē