Download This video with 4k resolution and then rename it with DolbyVision.mkv
- Build Node js app in docker
docker build -t <app name> .
- running the services (but we want to run Docker swarm, so we do not need to do)
docker run -it -p 3000:8000 <app name>
- Create swarm services (in some case firewall was blocked by ubuntu, you must enable it first with "sudo ufw allow 2377")
docker swarm init --advertise-addr <ip>
- Copy token to node os
- Vertify node
docker node ls
- create services
# for running in one node
docker service create --name <name> -p 3000:8000 <image-name>
or
# for running in global nodes (all nodes connected to the token)
docker service create --name <name> -p 3000:8000 --mode global <image-name>
or
# enter manually the desired number of nodes
docker service create --name <name> -p 3000:8000 --relplicas <n node> <image-name>
- Check running aplication
docker ps
- List of Services
docker service ls
- List task of services
docker service ps <name>
- Scale app services
docker service scale <name>=<n node>
- Remove node app (optional)
docker node rm <name>
- Remove service (optional)
docker service rm <name>
- Turn off node (optional)
docker node update --availability drain <Node ID>
- Turn on node (optional)
docker node update --availability active <Node ID>
- Prepare the Diretory
sudo mkdir -p /data/loadbalancer
- Create load balancer setup file with name "default.conf"
sudo nano /data/loadbalancer/default.conf
- Write load balancer "default.conf"
server {
listen 8000;
location / {
proxy_pass http://backend;
}
}
upstream backend {
server <manager ip>:3000;
server <worker-1 ip>:3000;
server <worker-2 ip>:3000;
}
- create new docker service for nginx load balancer
docker service create \
--name loadbalancer \
--mount type=bind,source=/data/loadbalancer,target=/etc/nginx/conf.d \
--publish 80:80 \
swarm-lb

