Appunti DockerContainer : 1. Docker engine, creazione di un'immagine di riferimento : docker build -t glavermi/nodejshdp . <- att.ne al punto finale //Creazione di un'immagine che abbia come nome TAG un repository remoto identificato da "glavermi" e nome macchina "nodejshdp" . Il nome del TAG ci servirà per gestirla altrimenti bisogna riferirsi al ContainerID che non compare come suggerimento nella shell.// file di setup -> Dockerfile FROM node:8 #application directory WORKDIR /usr/src/app/DevicesPosition COPY ./instantclient_18_3/ /opt/instantclient_18_3/ # Bundle app source COPY ./DevicesPositions/trunk ./ ENV LD_LIBRARY_PATH="/opt/instantclient_18_3" RUN apt-get update \ && apt-get install -y libaio1 \ && apt-get install -y build-essential \ && apt-get install -y unzip \ && apt-get install -y curl #RUN npm install EXPOSE 3000 CMD [ "npm", "start" ] ---- 2. Avvio della macchina (Il Container è pronto - ma non è avviato) : docker run -it -d -p 3000:3000 glavermi/nodejshdp:latest //"Latest" è la versione del Container - Docker la aggiunge nel caso non venda specificato con il Build - io non l'avevo fatto// ---- 3. Creazione delle swarm : docker stack deploy --compose-file docker-swarm-2.yml stack-nodejshdp //nel file .yml ci sarà la logica di creazione massiva delle macchine partendo dal container definito a priori// file di setup -> docker-swarm-2.yml version: "3.0" services: web: # replace username/repo:tag with your name and image details image: glavermi/nodejshdp:latest deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 100M restart_policy: condition: on-failure ports: - "3000:3000" networks: - webnet volumes: - my_data_4:/usr/src/app/my_data visualizer: image: dockersamples/visualizer:stable ports: - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: placement: constraints: [node.role == manager] networks: - webnet networks: webnet: volumes: my_data_4: