Usare le Docker Engine API con Node.js
Le Docker Engine API permettono di interagire con Docker in modo programmatico. In questo articolo vedremo come utilizzare Node.js con l'SDK ufficiale per interfacciarsi con il daemon Docker.
Prerequisiti
- Docker installato e in esecuzione
- Node.js installato
- Il pacchetto
dockerodeinstallato
Installazione del pacchetto
Per comunicare con Docker in Node.js, utilizziamo dockerode, una libreria che semplifica l'interazione con l'API.
npm install dockerode
Utilizzo dell'SDK
Creiamo un file docker-client.js con il seguente codice per elencare i container esistenti:
const Docker = require('dockerode');
const docker = new Docker();
async function listContainers() {
try {
const containers = await docker.listContainers({ all: true });
console.log(containers);
} catch (error) {
console.error('Errore nel recupero dei container:', error.message);
}
}
listContainers();
Creare e gestire container
Creazione di un container
Per avviare un container con un'immagine specifica:
async function createContainer() {
try {
const container = await docker.createContainer({
Image: 'nginx',
Cmd: ['nginx', '-g', 'daemon off;'],
name: 'my-nginx',
});
await container.start();
console.log('Container creato e avviato:', container.id);
} catch (error) {
console.error('Errore nella creazione del container:', error.message);
}
}
createContainer();
Gestione di un container esistente
async function stopContainer(containerId) {
try {
const container = docker.getContainer(containerId);
await container.stop();
console.log(`Container ${containerId} arrestato.`);
} catch (error) {
console.error('Errore nell'arresto del container:', error.message);
}
}
Conclusione
Abbiamo visto come interagire con le Docker Engine API utilizzando Node.js e l'SDK ufficiale dockerode. Questo strumento semplifica l'automazione della gestione dei container.