Sistemi di Virtualizzazione Container-Based: Docker
|
|
- Isabella Lorenzi
- 8 anni fa
- Visualizzazioni
Transcript
1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Reti di Calcolatori I Sistemi di Virtualizzazione Container-Based: Docker Anno Accademico 2014/2015 Candidato: Francesco Santonastaso matr. N46/1869
2 [Dedica]
3 Indice Indice... III Introduzione... 4 Capitolo 1: La Virtualizzazione L Hypervisor Le Tipologie di Virtualizzazione con o senza Hypervisor La Virtualizzazione Container Based: Cos è e come funziona Container e Macchine Virtuali: Differenze I Vantaggi dell uso dei Container Capitolo 2: Docker Cos è Docker Perché Docker L Architettura di Docker Come funziona Docker Come funziona un immagine Docker Come funziona un registro Docker Come funziona un contenitore Docker Cosa succede quando un Container viene eseguito La tecnologia alla base di Docker I Namespaces Control Groups Union file systems Il formato dei Container La sicurezza di Docker Capitolo 3:Installazione ed esempi di utilizzo di Docker Prerequisiti Installazione Configurazione di Docker su Ubuntu Creare un Docker Group Regolare la Memoria e utilizzare lo Swap Accounting Configurare UFW (Uncomplicated Firewall) Configurare un server DNS per l utilizzo in Docker Configurare Docker per l avvio in fase di boot Aggiornare o Disinstallare Docker Configurazione di un database Riak in un immagine Docker Conclusioni Bibliografia Ringraziamenti... 40
4 Introduzione Virtualizzare è una pratica talmente diffusa oggi che è diventata quasi indispensabile per gli enormi vantaggi e le implicazioni positive che ha in tanti aspetti e in tutti gli ambienti in cui è utilizzata. La possibilità di astrarre componenti hardware degli elaboratori con lo scopo di renderle disponibili al software in forma di risorsa virtuale ha portato enormi vantaggi alla razionalizzazione e l ottimizzazione delle risorse hardware grazie ai meccanismi di distribuzione delle risorse disponibili sulla piattaforma fisica. Tramite questo processo è infatti possibile ottenere macchine virtuali, cioè software che attraverso un processo di virtualizzazione creano un ambiente virtuale che emula il comportamento di una macchina fisica grazie all assegnazione di risorse hardware, che possono girare contemporaneamente su un sistema fisico condividendo le risorse della piattaforma. Le eventuali contese di risorse vengono gestite dal software di virtualizzazione che si occupa della gestione dell ambiente. Uno dei vantaggi è proprio il fatto di poter offrire contemporaneamente ed efficientemente a più utenti diversi ambienti operativi separati, ciascuno attivabile su richiesta, senza andare ad intaccare il sistema fisico reale con il partizionamento del disco rigido oppure fornire ambienti clusterizzati su sistemi server. Infatti, lato server, le tecnologie di virtualizzazione vengono utilizzate per disporre di un certo numero di sistemi operativi su un numero minore di piattaforme hardware, spesso anche in configurazione cluster di ridondanza o di load balancing. Questo testo si propone l obiettivo di illustrare in una prima parte le varie tecniche di 4
5 virtualizzazione entrando nello specifico della tecnica di Virtualizzazione Container Based per poi focalizzarsi in una seconda parte su Docker, uno degli applicativi più interessanti degli ultimi anni che è forse la prima vera piattaforma che mette ordine nel caos dei container Linux-Based e rende accessibile in modo semplice e pratico, la tecnologia di virtualizzazione a livello Sistema Operativo agli sviluppatori. Docker sta infatti avendo un discreto successo, confermato da diverse testate IT, perché, in ambito cloud e virtualizzazione, sta trovando un enorme interesse e sembra gradito da una folta schiera di utenti. 5
6 Capitolo 1: La Virtualizzazione Abbiamo già detto nella nostra introduzione che con il termina virtualizzazione possiamo indicare un processo di astrazione per il quale le componenti hardware deli elaboratori vengono resi disponibili ai vari software nella forma di risorsa virtuale permettendoci o di installare sistemi operativi su hardware virtuale o di utilizzare sullo stesso sistema operativo varie istanze dello stesso. Andremo ora a riprendere il concetto in questo capitolo andando a fare chiarezza tra le diverse tipologie che esistono di questa tecnica soffermandoci in particolare sulla virtualizzazione Container Based e sulle implicazioni positive che essa può avere. 1.1 L Hypervisor Il componente software che consente l interfacciamento della macchina virtuale con la piattaforma su cui esso risiede è chiamato Virtual Machine Monitor o Hypervisor e ne esistono due tipologie. La tipologia Native, nativa, in cui l Hypervisor è in esecuzione direttamente sull hardware, consentendone il controllo diretto per offrire le funzionalità di virtualizzazione. Individua pertanto un livello di separazione tra il sistema operativo e la piattaforma fisica. Un esempio è Hyper-V della Microsoft. L Hypervisor prevede che l esecuzione dei diversi sistemi operativi nei rispettivi ambienti sia completamente isolata. Uno degli ambienti, o partizioni, deve contenere obbligatoriamente il sistema operativo host il quale è in grado di creare partizioni figlie con i relativi sistemi operativi guest. Tali sistemi sono quindi direttamente in esecuzione sull Hypervisor. La tipologia Hosted, ospitata, è quella in cui l Hypervisor è in esecuzione sul sistema operativo host, il quale risiede a sua volta sulla piattaforma fisica. Risulta efficace nelle situazioni in cui si 6
7 desideri accesso immediato sia al sistema operativo host, solitamente il sistema operativo desktop dell utente, che al guest. Prevede servizi di supporto per la virtualizzazione ma si affida al sistema host per quanto concerne gestione della memoria, allocazione delle risorse, scheduling e driver dei dispositivi. Esempi conosciuti di Hypervisor appartenenti a questa categoria sono VMware e VirtualBox Le Tipologie di Virtualizzazione con o senza Hypervisor Esistono diverse tipologie di virtualizzazione hardware che non sono necessariamente basate su Hypervisor e va fatta una distinzione tra quelle che ne fanno o meno uso. Le tipologie di virtualizzazione basate su Hypervisor sono: Virtualizzazione Completa: L Hypervisor virtualizza completamente l hardware (memoria, CPU, rete ecc.) garantendo di conseguenza piena compatibilità con un qualsiasi sistema operativo che supporti l infrastruttura fisica virtuale. I sistemi guest e host sono completamente isolati. I famosi Hyper-V, VMware e VirtualBox garantiscono compatibilità con tale tipologia di virtualizzazione. Virtualizzazione Hardware Assistita: E conosciuta anche con le espressioni hardware virtual machine o native virtualization. Si tratta di un approccio full virtualization esteso, in cui il processore prevede il supporto architetturale per facilitare la costruzione dell Hypervisor e per inoltrare diverse chiamate del sistema operativo guest direttamente all hardware fisico, aumentando le performance globali del sistema. Gli Hypervisor Xen, Vmware, VirtualBox e Hyper-V sono compatibili con tale tecnologia. Paravirtualizzazione: L Hypervisor non simula l hardware ma ne espone una interfaccia modificata funzionalmente simile a quella reale. L interfaccia si concretizza in un insieme di API denominate Virtual Hardware API, le quali sono progettate nell ottica di un uso specifico da parte di una macchina virtuale. L assenza di emulazione hardware si traduce in maggiori performance, tuttavia i sistemi operativi guest necessitano di modifiche per garantire la compatibilità con l interfaccia virtuale, individuando una minore flessibilità nella soluzione. 7
8 L Hypervisor Xen è compatibile con tale approccio. La tipologia di virtualizzazione non basata sull Hypervisor è la Virtualizzazione a Livello Sistema Operativo o Container Based, basata su contenitore. Questa soluzione prevede un sistema operativo host centrale condiviso, dotato di un kernel opportunamento modificato. I sistemi operativi guest, chiamati anche containers o virtual private servers (VPS), devono essere necessariamente dello stesso tipo dell host. Le funzionalità sono quindi replicate senza la necessità di effettuare onerose chiamate di sistema tra i diversi layer. Esempi di sistemi operativi host compatibili con tale tipologia di virtualizzazione sono Linux e Solaris. 1.2 La Virtualizzazione Container Based: Cos è e come funziona Perché virtualizzare un intera macchina, quando sarebbe possibile virtualizzare solamente una piccolo parte di essa? Da quest idea gli sviluppatori hanno cominciato a trovare delle strade alternative alla virtualizzazione completa e la stessa Google, confrontandosi con questo problema, ha sviluppato un aggiunta al kernel Linux chiamata cgroups, che ha permesso al team di sviluppo californiano di rilasciare software in maniera più veloce, più economica e con una scalabilità senza precedenti. Con cgroups, Google era riuscita a creare un contesto di esecuzione isolato, con un alto 8
9 livello di astrazione, tanto da imporsi come una sorta di sistema operativo semplificato e virtualizzato che soggiace alla base di tutte le applicazioni sviluppate da Mountain View. Dopo pochi anni, la volontà di rendere questa tecnologia uno standard, ha condotto il team di Docker a sviluppare un formato di contenierizzazione interoperabile, capace di pacchettizzare le applicazioni ed effettuarne il rilascio in qualsiasi ambiente di esecuzione, senza doversi preoccupare delle condizioni di eseguibilità. La contenierizzazione, quindi, può essere considerata figlia della virtualizzazione, da cui si evolve in una nuova generazione che introduce migliorie di non poco conto. La Base per i Container: cgroups cgroups, abbreviazione di Gruppi di Controllo, è, come già detto, un Kernel Linux sviluppato dagli ingegneri di Google (sopratutto Paul Menage e Rohit Seth) che limita e isola l utilizzo delle risorse (CPU, memoria, disco, input/output, rete, ecc.) di un insieme di processi dello stesso sistema operativo. Inizialmente nel 2006 il progetto si chiamava process containers, contenitori di processo ma visto il significato ambiguo che poteva avere nel contesto del Kernel Linux la parola contenitore, il nome è stato cambiato in gruppi di controllo, cgroups. Uno degli obiettivi di progettazione di cgroups é quello di fornire un interfaccia unificata per diversi casi d uso, dal controllare singoli processi fino alla virtualizzazione a livello del sistema operativo. Cgroups prevede: Limitazione delle Risorse: i gruppi possono essere impostati per non superare un limite di memoria configurato comprendente anche la cache del file system. Gestione Priorità: Alcuni gruppi possono ottenere una maggiore quota di utilizzo della CPU o dei dispositivi di Input/Output. Accounting: Misurazione di quante risorse utilizzano alcuni sistemi. Controllo: Il congelamento di gruppi di processi e controllare i loro punti di arresto e riavvio. Un gruppo di controllo è un insieme di processi che sono accomunati dagli stessi criteri. Questi gruppi possono essere gerarchici, ogni gruppo può ereditare i limiti di utilizzo dal 9
10 gruppo padre. Il kernel fornisce l accesso a più controllori (sottosistemi) attraverso l interfaccia cgroup; per esempio, la memoria del controller limita l utilizzo della memoria, cpuacct spiega l utilizzo della CPU, ecc. I gruppi possono essere utilizzati in diversi modi: o Accedendo manualmente al file system virtuale cgroup; o Con la creazione e gestione di gruppi al volo utilizzando strumenti come cgcreate, cgexec e cgclassify (da libcgroup); o Attraverso un motore di regole che può spostare automaticamente i processi di alcuni utenti, gruppi o comandi a cgroups come specificato nella sua configurazione; o Indirettamente, mediante altro software che utilizza cgroups, come Docker, Linux Containers (LXC), libvirt, systemd, Open Grid Scheduler e Google Imctfy. Tutti i dettagli tecnici della configurazione e dell utilizzo dei gruppi di controllo sono contenute nella documentazione kernel di Linux. 1.3 Container e Macchine Virtuali: Differenze Rispetto ad una macchina virtualizzata, un container è capace di offrire: Un rilascio delle applicazioni semplificato: impacchettando un applicazione in un singolo componente distribuibile e configurabile con una sola linea di comando, la tecnologia a container permette di semplificare il rilascio di qualsiasi applicazione, senza doversi preoccupare della configurazione dell ambiente di runtime; Una disponibilità rapida: virtualizzando ed astraendo solo il sistema operativo e le componenti necessarie all esecuzione dell applicazione, invece che l intera macchina, l intero package si avvia in un ventesimo di secondo, rispetto ai tempi di avvio di una Virtual Machine; Un controllo più granulare: i container consentono agli operatori e agli sviluppatori di suddividere ulteriormente le risorse computazionali in microservizi, garantendo cosi un controllo superiore sull eseguibilità delle applicazioni e un miglioramento delle prestazioni dell intero sistema. 10
11 1.4 I Vantaggi dell uso dei Container Le caratteristiche proprie della tecnologia dei container portano ad alcuni vantaggi indiscutibili: 1. Il vantaggio forse più ovvio è l opportunità per gli sviluppatori di possedere una miriade di container anche sul proprio PC o laptop, per avere sempre a portata di mano un ambiente di rilascio o test adatto a ciascuna applicazione in sviluppo. Per quanto sia possibile eseguire anche su un laptop diverse vitual machine, questa operazione non è mai veloce e semplice e impatta non poco sulle prestazioni; 2. L amministrazione dei cicli di rilascio delle applicazioni è semplificata in quanto distribuire una nuova versione di un container è pari al tempo speso per digitare in console una singola linea di comando; 3. Le attività di testing traggono un beneficio economico notevole da un ambiente che utilizza la tecnologia di virtualizzazione basata sui container. Con un container è infatti possibile effettuare una serie di semplici test programmati in modo giornaliero mantenendo costante il costo, in quanto si userebbero sempre le stesse risorse di calcolo; 4. Non possiamo poi ignorare la componibilità dei sistemi applicativi, specialmente per applicazioni open source. In pratica, invece di obbligare gli sviluppatori a installare e configurare i servizi MySQL, memcached, MongoDB, nginx, node.js e altri, per avere la giusta piattaforma esecutiva per le proprie applicazioni, sarebbe meno rischioso e più veloce avviare ed eseguire con piccoli script quei pochi container che ospitano queste stesse applicazioni. Sul lungo periodo, il più importante vantaggio che questa tecnologia promette è la portabilità e la consistenza di un formato che consente l esecuzione applicativa su diversi host. Infatti, con la standardizzazione dei container, i workload possono essere facilmente spostati li dove vengono eseguiti in modo più economico e veloce, evitando anche i lockin dovuti alle peculiarità delle piattaforme dei singoli provider. 11
12 Capitolo 2: Docker La virtualizzazione Container-Based ha avuto la sua svolta quando sul mercato è stato lanciato Docker che ha praticamente automatizzato il processo di creazione di contenitori su piattaforma Linux e ha permesso quindi ad un utenza più ampia di osservare le potenzialità e di usufruire dei vantaggi della virtualizzazione Container-Based. In questo capitolo andremo a capire cos è Docker andando nel dettaglio delle sue componenti e del suo modo di operare. 2.1 Cos è Docker (figura 2: Il Logo di Docker) Docker è una piattaforma per lo sviluppo, il trasporto, e l'esecuzione di applicazioni ed è progettata per fornire applicazioni più velocemente. Con Docker è possibile separare le applicazioni dall'infrastruttura e curare l'infrastruttura come un'applicazione gestita. Aiuta infatti a condividere codice più velocemente, a testarlo più velocemente, ad implementarlo velocemente e ad abbreviare il ciclo tra la scrittura e l esecuzione del codice. Docker fa ciò combinando una piattaforma contenitore di virtualizzazione leggera con i flussi di lavoro e i tools che consentono di gestire e distribuire le applicazioni, fornendo infatti al suo interno dei metodi per eseguire quasi tutte le applicazioni isolate in modo sicuro nel contenitore. L'isolamento e la sicurezza consentono di eseguire molti contenitori contemporaneamente sul sistema host mentre la leggerezza dei contenitori, che eseguiti 12
13 senza il carico extra di un hypervisor, permette di ottenere di più dal proprio hardware. Attorno alla virtualizzazione basata su container ci sono dei tools e una piattaforma che può aiutare l utente in diversi modi: Ottenimento delle applicazioni (e dei componenti di supporto) in contenitori Docker; Distribuzione e trasporto di quei contenitori per i team di sviluppo per un ulteriore sviluppo e test; Distribuzione di tali applicazioni nell ambiente di produzione, sia che si tratti di un centro di dati locali sia che si tratti di un centro di dati in Cloud. 2.2 Perché Docker Andiamo ad analizzare ora i motivi per cui bisognerebbe utilizzare Docker per sviluppare le proprie applicazioni. Docker offre una consegna delle applicazioni più veloce infatti i Contenitori Docker, e il flusso di lavoro derivato da essi, aiutano gli sviluppatori, amministratori di sistema, i releasers a lavorare insieme per avere il codice in produzione e renderlo utile nel minor tempo possibile. E stato creato infatti un formato contenitore standard che consente agli sviluppatori di preoccuparsi delle loro applicazioni all interno dei container mentre gli amministratori di sistema e gli altri operatori possono lavorare sulla gestione del contenitore nella distribuzione. Questa separazione dei compiti semplifica la gestione e la distribuzione del codice. Docker è perfetto per offrire agli sviluppatori un aiuto concreto nel ciclo di sviluppo, infatti, permette di sviluppare su contenitori locali che contengono applicazioni e servizi. E quindi possibile integrare un flusso di lavoro e un implementazione continua. Ad esempio, gli sviluppatori possono scrivere codice a livello locale e condividere il loro stack di sviluppo attraverso Docker con i loro colleghi. Quando sono pronti, mettono il loro codice e lo stack che stanno sviluppando su un ambiente di prova ed eseguono i test richiesti. Dall ambiente di test e quindi possibile mettere il codice in produzione ed eseguirlo. Costruendo di volta in volta nuovi contenitori in modo semplice grazie a Docker viene 13
14 consentita un iterazione rapida delle applicazioni aumentando la visibilità delle modifiche e aiutando tutti gli utenti a capire come funziona e come è fatta un applicazione e grazie anche alla leggerezza e velocità dei container si riduce il tempo del ciclo di sviluppo, test ed implementazione dell applicazione. Uno degli aspetti fondamentali è poi la sua scalabilità che permette di distribuire molto più facilmente. I contenitori Docker, infatti, possono girare su tante piattaforme, è infatti possibile distribuire i contenitori su desktop, server fisici, macchine virtuali, in data center e in cloud pubblici e privati. È possibile avviare rapidamente più contenitori in caso di necessità e poi chiuderli facilmente quando non sono più necessari. Non avendo bisogno di un hypervisor si può ottenere maggiore densità ed eseguire più carichi di lavoro contemporaneamente visto che possiamo eseguire e quindi ospitare contemporaneamente diversi container dando più valore a tutti i server e permettendo una riduzione di ciò che si spenderebbe in licenze e tool. Ciò è particolarmente utile in ambienti ad alta densità: per esempio, costruire il proprio Cloud o Platform-as-a-Service. Ma è anche utile per le piccole e medie distribuzioni in cui si vuole ottenere di più le risorse disponibili. 2.3 L Architettura di Docker Docker utilizza un'architettura client-server. Un client Docker comunica con un demone Docker, che fa il lavoro pesante di costruzione, esecuzione e distribuzione dei contenitori Docker, attraverso socket o un set di API RESTful. Sia il client che il demone possono essere eseguiti sullo stesso sistema, ma è anche possibile connettere un client Docker ad un demone Docker remoto. Come mostrato in figura 3, il demone Docker viene eseguito su una macchina host. L'utente non interagisce direttamente con il demone, ma lo fa attraverso il client Docker. Il client è l'interfaccia utente principale, accetta comandi dall'utente e comunica con il demone. Per capire internamente Docker bisogna conoscere 3 componenti: Le immagini Docker 14
15 I registri Docker I container Docker (Figura 3: L architettura Docker) Un'immagine Docker è un modello di sola lettura. Ad esempio, essa può contenere un sistema operativo Ubuntu con Apache e un applicazione web installata. Le immagini vengono usate per creare i contenitori Docker. Docker fornisce un modo semplice per creare nuove immagini o aggiornare le immagini esistenti, oppure è possibile scaricare le immagini che altre persone hanno già creato. Le immagini Docker sono la componente di costruzione di Docker. I registri Docker servono per ospitare le immagini. Si tratta di store, pubblici o privati, da cui caricare o scaricare immagini. Il registro pubblico è fornito dal Docker Hub e contiene una vasta collezione di immagini esistenti e pronte per l'uso che possono essere le immagini create da noi o immagini che altri hanno creato in precedenza. I registri Docker sono la componente di distribuzione di Docker. I contenitori Docker sono simili a una directory. Un contenitore Docker contiene tutto ciò che è necessario per eseguire una applicazione ed è creato da un'immagine Docker. Essi possono essere eseguiti, inizializzati, messi in pausa, spostati e cancellati e ognuno di essi è una piattaforma applicativa isolata e sicura. I contenitori Docker sono la componente di esecuzione di Docker. 15
16 2.4 Come funziona Docker Sappiamo che: Possiamo creare immagini che contengono applicazioni; Possiamo creare container Docker da quelle immagini per eseguire le nostre applicazioni; Possiamo condividere queste immagini Docker attraverso il Docker Hub o attraverso nostri registri. Andiamo ora nel dettaglio a capire come possiamo combinare questi elementi e come ci permettono di far funzionare Docker Come funziona un immagine Docker Abbiamo già visto che le immagini Docker sono modelli da cui vengono lanciati i contenitori Docker in sola lettura. Ogni immagine è costituita da una serie di strati e Docker fa uso di union file systems per combinare questi livelli in una sola immagine. Union file sistems permette che file e directory con file system separati, noti come rami, possano essere sovrapposti formando un unico file system coerente. Proprio questi strati sono una delle ragioni per cui Docker è cosi leggero. Quando viene modificata un immagine, ad esempio per aggiornare un applicazione ad una nuova versione, viene costruito un nuovo livello. Cosi invece di sostituire l intera immagine o ricostruirla tutta, come si può fare con una macchina virtuale, viene aggiunto o aggiornato solo tale livello. Cosi non c è bisogno di distribuire una nuova immagine ma solo aggiornarla rendendo la distribuzione di immagini Docker più veloce e semplice. Ogni immagine parte da un immagine di base, ad esempio Ubuntu, un immagine base di Ubuntu o Fedora, un immagine base di Fedora. E inoltre possibile utilizzare le immagini come si vuole come base per una nuova immagine, ad esempio, se si dispone di un immagine base Apache è possibile utilizzarla come base di tutte le immagini per applicazioni web. Le immagini Docker vengono quindi costruite da queste immagini di base utilizzando un semplice insieme di istruzioni. Ogni istruzione crea un nuovo livello nella nostra 16
17 immagine. Le istruzioni comprendono azioni come: Eseguire un comando; Aggiungere un file o una directory; Creare una variabile d ambiente; Quale processo da eseguire all avvio di un container da questa immagine. Queste istruzioni sono memorizzate in un file chiamato Dockerfile. Docker legge questo Dockerfile quando si richiede la generazione di un immagine, quindi esegue le istruzioni e restituisce l immagine finale Come funziona un registro Docker Un registro Docker è il luogo dove risiedono le immagini Docker. Una volta creata l immagine la si può inserire su un registro pubblico, quello fornito da Docker Hub o sul proprio registro personale attraverso un firewall personale. Utilizzando il client Docker è possibile cercare le immagini già pubblicate per usarle sul proprio sistema host e costruire container a partire da queste ultime. Docker Hub fornisce spazio sia pubblico che privato per l immagazzinamento di immagini. Lo spazio pubblico è consultabile da chiunque e le immagini che risiedono su di esso sono scaricabili sempre e da qualsiasi utente. Lo spazio privato, invece, viene escluso dai risultati di ricerca e solo il proprietario e i suoi utenti che ricevono i permessi possono scaricare le immagini ed utilizzarle per costruire i propri contenitori Come funziona un contenitore Docker Un contenitore è costituito da un sistema operativo, file aggiunti dall utente e meta-dati. Come abbiamo gia visto, ogni contenitore è costruito da un immagine che ci dice a Docker cosa contiene il contenitore, quale processo deve eseguire quando il contenitore viene lanciato e una varietà di altri dati di configurazione. L immagine Docker è di sola lettura. Quando Docker gestisce un container da un immagine, si aggiunge un livello di lettura scrittura all immagine (utilizzando union file system come visto in precedenza) nel quale l applicazione può essere eseguita. 17
18 2.4.4 Cosa succede quando un Container viene eseguito Attraverso l eseguibile docker o attraverso le API, il client Docker avvisa il demone Docker che deve eseguire un container Analizziamo questo comando. Il client Docker viene avviato utilizzando l eseguibile binario docker con l opzione run che ha come obiettivo quello di avviare un nuovo contenitore. Ciò che di fondamentale il client Docker deve dire al demone per eseguire il contenitore è: Da quale immagine Docker deve costruire il contenitore, in questo caso Ubuntu, e quindi un immagine base di Ubuntu; Il comando che si desidera eseguire all interno del contenitore quando è lanciato, qui /bin/bash, per avviare la shell Bash all interno del nuovo container; Quando si esegue questo comando Docker esegue in ordine le seguenti operazioni: Prende l immagine Ubuntu: Docker ne verifica la presenza localmente e se non esiste sul sistema host la scarica da Docker Hub. Se l immagine invece esiste già allora la utilizza per il nuovo contenitore che intendiamo creare; Crea un nuovo contenitore: una volta che Docker ha acquisito l immagine di base la utilizza per creare il nuovo contenitore; Alloca un file system e monta un livello di lettura-scrittura: Il contenitore viene creato nel file system e viene aggiunto all immagine un livello di lettura-scrittura; Alloca un interfaccia di rete: Crea una interfaccia di rete che consente al contenitore Docker di trasmettere con l host locale; Imposta un indirizzo IP: Trova e attribuisce al container un indirizzo IP disponibile da un pool di indirizzi; Esegue un processo specificato: Esegue l applicazione specificata; Provvede all output dell applicazione: Collega gli input e gli output alla nostra applicazione per permetterci di vederla in uso e interagire con essa registrando in un file di log tutte le operazioni compresi gli errori. 18
19 Dopo tutte queste operazioni abbiamo un contenitore in esecuzione. Da questo punto in poi è possibile interagire con l applicazione e alla fine delle operazioni da svolgere si può interrompere, mettere in pausa o rimuovere il contenitore. 2.5 La tecnologia alla base di Docker Docker per il suo funzionamento utilizza alcune features messe a disposizione dal Kernel Linux per permettere all utente di utilizzare le funzionalità viste in questo capitolo I Namespaces Docker sfrutta una tecnologia chiamata namespaces per fornire lo spazio di lavoro isolato che noi abbiamo chiamato contenitore. Quando eseguiamo un contenitore, Docker crea una serie di spazi di nomi per quel contenitore. Ciò fornisce uno strato di isolamento in quanto ciascun aspetto di un contenitore viene eseguito nel proprio namespace (che significa proprio spazio di nomi) e non ha accesso all esterno. Alcuni dei namespaces utilizzati da Docker sono: Il pid namespace: Questo spazio dei nomi viene utilizzato per l isolamento dei processi (PID: Process ID); Il net namespace: Lo spazio dei nomi di rete viene utilizzato per la gestione delle interfacce di rete (NET: Networking); L ipc namespace: Lo spazio dei nomi IPC viene usato per gestire l accesso alle risorse IPC (IPC: Interprocess Communication); L mnt namespace: Lo spazio dei nomi mnt viene usato per la gestione dei punti di montaggio (MNT: Mount); L uts namespace: Lo spazio dei nomi uts viene utilizzato per isolare il kernel e gli identificatori di versione (UTS: Unix Timesharing System) Control Groups Docker si avvale di una tecnologia chiamata cgroups, gruppi di controllo. Una delle chiavi per l esecuzione di applicazioni per le quali vogliamo un elevato isolamento è di fargli utilizzare solo le risorse che gli servono. In questo modo i contenitori permettono un 19
20 elevato risparmio di risorse al sistema host. I gruppi di controllo permettono a Docker di condividere le risorse hardware disponibili ai contenitori e se necessario anche di imporre limiti e vincoli di utilizzo. Per esempio possiamo limitare la banda disponibile per l utilizzo della rete o limitare la memoria disponibile per uno specifico contenitore Union file systems Union file systems, o UnionFS, è il gruppo di file system che operano per la creazione di livelli e che li rendono molto leggeri e veloci. Docker utilizza union file systems per fornire i livelli per costruire i container. Può far uso di alcune varianti di union file systems tra cui: aufs, btrfs, vfs, e devicemapper Il formato dei Container Tutte queste componenti vengono combinate in un involucro che chiamiamo contenitore. Il formato contenitore predefinito è chiamato libcontainer. Docker supporta anche i contenitori tradizionali di Linux utilizzando LXC. In futuro è previsto che Docker possa supportare altri formati contenitore con l integrazione con BSD Jails o Solaris Zones. (Figura 4: Come Funziona Docker) 20
21 2.6 La sicurezza di Docker Per approfondire la sicurezza di Docker ci sono alcune aree principali da prendere in considerazione: La sicurezza intrinseca del kernel e il suo supporto per i namespaces e cgroups; Attacchi al livello di sicurezza del demone Docker; Le scappatoie nel profilo di configurazione del contenitore, sia quando è nella sua impostazione predefinita sia quando è impostato dall utente; L irrobustimento delle caratteristiche di sicurezza del kernel e la loro interazione con i contenitori. Kernel Namespaces I contenitori Docker sono molto simili ai contenitori LXC e hanno caratteristiche di sicurezza simili. Quando si avvia un container con docker run, dietro a questo procedimento Docker crea una serie di spazi di nomi e gruppi di controllo per il contenitore. I namespaces forniscono la prima e più semplice forma di isolamento: i processi in esecuzione all interno di un contenitore non possono vedere i processi in esecuzione in un altro contenitore oppure nel sistema host. Ogni contenitore ottiene anche un proprio stack di rete, ciò significa che un contenitore non ottiene un accesso privilegiato ai socket o alle interfacce di un altro contenitore. Naturalmente, se il sistema host è configurato di conseguenza, i contenitori possono interagire tra di loro tramite le rispettive interfacce di rete, proprio come possono interagire con host esterni. Quando si specificano le porte pubbliche per i contenitori o si utilizzano collegamenti, il traffico IP è consentito tra i contenitori. Essi possono fare un ping l un l altro, inviare/ricevere pacchetti UDP e stabilire connessioni TCP ma si possono anche limitare se necessario. Da un punto di vista della architettura di rete, tutti i contenitori su un dato host Docker risiedono sulle interfacce bridge. Ciò significa che sono proprio come le macchine fisiche collegate attraverso uno switch Ethernet comune, ne più ne meno di ciò. I kernel namespaces sono stati introditti tra le versioni del kernel e Ciò 21
22 significa che dal luglio 2008 (data del rilascio della ), il codice dei namespace è stato eseguito ed esaminato su un gran numero di sistemi di produzione. Tra l altro il design e l ispirazione dei namespace sono ancora più antichi. Infatti i namespace sono in realtà uno sforzo per reimplementare le caratteristiche di OpenVZ in modo tale da poter essere inseriti nel kernel. Ciò dimostra che la fase di testing per il meccaniscmo dei namespaces è stata davvero ampia e dura da tempo rendendolo quindi abbastanza sicuro allo stato atuale. Control Groups I gruppi di controllo sono un altro component chiave dei contenitori di Linux. Essi implementano la gestione e la limitazione delle risorse e forniscono parametri utili aiutando a gestirle in modo che ciascun contenitore ottenga la giusta quota di memoria, CPU, disco, I/O e sporatutto che un singolo contenitore non porti il sistema ad esaurire le sue risorse. Cosi, anche se non giocano un ruolo nella prevenzione all accesso o alla modifica dei dati da parte di un altro contenitore, essi sono essenziali per respingere alcuni attacchi di tipo denial-of-service. Essi sono particolarmente importanti sulle piattaforme multi-tenant come PaaS pubbliche e privare, per garantire un uptime costante e performance anche quando alcune applicazioni iniziano a malfunzionare. Attacchi al livello del demone Docker I contenitori in esecuzione con Docker implicano l esecuzione del demone Docker. Questo demone richiede i privilegi di root e dobbiamo essere quindi a conoscenza di alcuni dettagli importanti. Innanzitutto, solo gli utenti attendibili dovrebbero essere autorizzati a controllare il demone Docker. Questa è una conseguenza diretta di alcune potenti funzioni di Docker. In particolare esso consenti di condividere una cartella tra l host Docker e un contenitore ospite e permette di farlo senza limitare i diritti di accesso del contenitore. Questo significa che è possibile avviare un contenitore in cui la directory /host sarà la directory / sul proprio host e il contenitore sarà in grado di alterare il filesystem ospitante senza alcuna restrizione. Questa è una situazione simile a come i sistemi di virtualizzazione consentono 22
23 la condivisione delle risorse del filesystem. Nulla impedisce di condividere il file system di root con una macchina virtuale. Ciò ha una forte implicazione nel campo della sicurezza: per esempio, se utilizzo Docker da un server web per avere contenitori attraverso un API bisognerebbe stare ancora più attenti del solito con il controllo dei parametri per evitare che un utente malintenzionato passi parametri predisposti che causano la creazione di contenitori arbitrari in Docker. Per questo motivo, l endpoint REST API (usata dal Docker CLI per comunicare con il demone Docker), cambiata in Docker 0.5.2, ora utilizza un socket UNIX invece di un socket TCP vincolato su (quest ultimo è incline ad attacchi di cross-site scripting se capita di eseguire Docker direttamente sul computer locale al di fuori di una VM). E quindi possibile utilizzare i tradizionali permessi UNIX per limitare l accesso al socket di controllo. Si può anche esporre l API REST su http se si decide esplicitamente di farlo. Tuttavia se si permette ciò bisogna essere consapevoli delle implicazioni di sicurezza di cui sopra. E necessario assicurarsi che sarò raggiungibile solo da una rete di fiducia o VPN, o connessioni protette per esempio stunnel e SSL client. E inoltre possibile mettere in sicurezza ciò con HTTPS e certificati. Si prevede quindi che il demone Docker verrà eseguito con privilegi ristretti e le operazioni delegate a sotto-processi ben controllati ognuno con la propria (limitata) portata delle capacità di Linux, installazione di rete virtuale, gestione del file system ecc. Infine se si esegue Docker su un server si consiglia di eseguire esclusivamente Docker nel server e spostare tutti gli altri servizi all interno di contenitori controllati da Docker. Naturalmente, è bene mantenere gli strumenti di amministrazione (almeno un server SSH), cosi come i processi monitoraggio esistenti (ad esempio nrpe, collectd, ecc). Funzionalità del kernel Linux Per impostazione predefinita, Docker inizializza contenitori con una serie limitata di funzionalità. I processi (come i web server) che hanno bisogno di usare una porta inferiore a 1024 non devono essere eseguiti come root: possono anche avere in concessione solo la capacità net_bind_service. E ci sono anche altre funzionalità, per quasi tutti i settori 23
24 specifici per cui di solito sono necessari i privilegi di root. Tutto ciò è molto importante a livello di sicurezza. Il server deve eseguire una serie di processi come root che di solito comprendono SSH, cron, syslogd, strumenti di gestione hardware, strumenti di configurazione di rete e molto altro. Un contenitore è molto diverso, perché quasi tutti questi compiti vengono gestiti dall infrastruttura intorno al contenitore: L accesso SSH viene in genere gestito da un unico server che viene eseguito sull host Docker; cron, se necessario, dovrebbe essere eseguito come un processo utente, dedicato e su misura per l applicazione che ha bisogno del suo servizio di pianificazione; La gestione dei log sarà in genere consegnata a Docker da servizi di terze parti come Loggly o Splunk; La gestione dell hardware è irrilevante, il che significa che non è mai necessario eseguire udevd o demoni equivalenti all interno di contenitori; La gestione della rete accade al di fuori dei contenitori, fa rispettare la separazione degli interessi per quanto possibile significa che per un contenitore non dovrebbe mai essere necessario eseguire ifconfig, route o comandi ip (fatta eccezione per quando un contenitore è specificatamente progettato per comportarsi come un router o un firewall). Ciò significa che nella maggior parte dei casi, i contenitori non avranno bisogno di dare dei privilegi di root "reali" a tutti e possono essere eseguiti con capacità ridotte. Il che implica che l utente root all interno di un contenitore ha molti meno privilegi rispetto alla vera root e significa che anche se un intruso riesce a creare una root all interno di un contenitore sarà molto più difficile fare gravi danni per l host. Un rischio primario con l esecuzione di contenitori Docker è che l insieme predefinito di funzionalità e supporti dato ad un contenitore può fornire un isolamento incompleto quando usato in combinazione con vulnerabilità del kernel. Docker supporta l aggiunta e la rimozione di capacità permettendo l uso di profili non predefiniti. Questo può rendere più sicuro rimuovere capacità. La pratica migliore per gli 24
25 utenti sarebbe quella di eliminare tutte le funzionalità ad eccezione di quelle espressamente richieste per i loro processi. Altre funzioni di sicurezza del kernel Le capacità sono solo una delle molte caratteristiche di sicurezza fornite dal kernel Linux moderno. E 'anche possibile sfruttare i sistemi esistenti, noti come Tomoyo, AppArmor, SELinux, grsec, ecc con Docker. Docker attualmente, anche consentendo solo capacità, non interferisce con gli altri sistemi e ciò significa che esistono molti modi diversi per rendere un host Docker piu solido. Eccone alcuni esempi. E possibile eseguire un kernel con GRSEC e PAX. Questo aggiungerà molti controlli di sicurezza, sia al momento della compilazione che in fase di run-time e riuscirà a sconfiggere molti exploit grazie a tecniche come l indirizzamento casuale. Non necessita di una configurazione specifica di Docker in quanto tali funzioni di sicurezza si applicano a livello di sistema, indipendentemente dai contenitori. Se la distribuzione ha dei template per i modelli di sicurezza per i container Docker essi possono essere usati al di fuori del contenitore. Ad esempio, possiamo inviare un template che funziona con AppArmor e e Red Hat e viene fornito con le politiche SELinux per Docker. Questi template forniscono una rete di sicurezza in più. E possibile definire le proprie politiche preferite per l utilizzo dei meccanismi dei controlli di accesso. Proprio come esistono molti strumenti di terze parti per aumentare la solidità dei contenitori Docker con, ad esempio, le reti speciali o filesystem condivisi, ci si può aspettare di avere strumenti per fortificare i contenitori Docker esistenti senza incidere pesantemente sul nucleo di Docker. Recenti miglioramenti nei namespaces Linux premetteranno presto di eseguire contenitori full-optional, senza privilegi di root, grazia al nuovo spazio dei nomi utente. Ciò risolverà il problema causato dalla condivisione di file system tra host e guest, dal momento che lo 25
26 spazio dei nomi utente consente agli utenti all interno di contenitori (compreso l utente root) di essere mappato da altri utenti del sistema host. Oggi Docker non supporta direttamente gli user namespaces ma essi possono essere utilizzati dai contenitori Docker su kernel supportanti utilizzando la syscall clone o utilizzando l utility unshare. Ci si aspetta che Docker avrà presto supporto diretto e nativo per gli user namespaces semplificando il processo di fortificazione della sicurezza dei contenitori. 26
27 Capitolo 3:Installazione ed esempi di utilizzo di Docker Andiamo a vedere nel dettaglio come installare Docker alla sua ultima versione disponibile che otterremo utilizzando i pacchetti gestiti da Docker e i suoi meccanismi di installazione. E anche possibile installare Docker con la versione dei pacchetti gestiti da Ubuntu e ciò è possibile consultando la documentazione di Ubuntu. Docker è supportato dai seguenti sistemi operativi Ubuntu: Ubuntu Vivid Ubuntu Trusty (LTS) Ubuntu Precise (LTS) Ubuntu Saucy 3.1 Prerequisiti Indipendentemente dalla versione di Ubuntu utilizzata Docker richiede un installazione a 64 bit e il kernel del sistema deve essere almeno alla versione 3.10 in quanto quelli precedenti a questa versione sono noti per avere bug causanti la perdita di dati in determinate condizioni e non permettono il corretto funzionamento di Docker. Per controllare la versione corrente del kernel, aprire un terminale e utilizzare uname -r per visualizzare la versione del kernel: Solo per Ubuntu Precise (LTS) Docker richiede la versione 3.13 del kernel. Se il kernel è più vecchio di questa versione è necessario aggiornarlo in quanto ci potrebbero essere dei problemi relativamente ad alcuni pacchetti. 27
28 Per aggiornare il proprio kernel e installare i pacchetti aggiuntivi bisogna effettuare le seguenti operazioni: 1. Aprire un terminale sul sistema host Ubuntu. 2. Aggiornare il gestore di pacchetti (package manager). 3. Installare i pacchetti obbligatori e facoltativi (seguire la guida utente per la singola versione). 4. Riavviare il sistema host. 3.2 Installazione Una volta accertato che sul sistema ci sono i prerequisiti per la versione di Ubuntu (far riferimento alla guida utente sul sito di Docker per la versione specifica) possiamo installare Docker. 1. Accedere al sistema di installazione di Ubuntu come utente con privilegi di amministratore (sudo) 2. Verificare che sul sistema sia installato curl e se non lo è bisogna installarlo dopo aver aggiornato il gestore 3. Acquisire l ultima versione del pacchetto Docker Il sistema richiede la password di amministratore e poi scarica e installa l ultima versione di Docker e le sue dipendenze. 4. Verifichiamo che Docker sia installato correttamente Questo comando scarica un immagine di prova e la esegue in un contenitore. 28
29 3.3 Configurazione di Docker su Ubuntu Andiamo ora a configurare alcuni elementi di Docker su Ubuntu per ottimizzare l esecuzione del nostro sistema di virtualizzazione Creare un Docker Group Il demone Docker si lega ad un socket Unix invece che a una porta TCP e per impostazione predefinita tale socket Unix è di proprietà dell utente root e gli altri utenti possono accedere solo con privilegi di amministratore (sudo). Per questo motivo, il demone docker viene eseguito sempre con privilegi di amministratore (root user). Per evitare di dover utilizzare sudo quando si utilizzano i comandi docker si può creare un gruppo Unix chiamato docker e aggiungere gli utenti che possono utilizzarlo. Quando il demone docker si avvia rende da la proprietà del socket Unix in lettura/scrittura al gruppo che abbiamo appena instanziato chiamato docker. Per creare il gruppo docker e aggiungere il proprio utente bisogna: 1. Fare il log in in Ubuntu con privilegi di amministratore (sudo). Ciò presuppone che si faccia l accesso ad Ubunru come utente. 2. Creare il gruppo docker e aggiungere il proprio utente: 3. Uscire ed accedere nuovamente. Ciò permette di assicurarci che l utente sia in esecuzione con le autorizzazioni corrette. 4. Verifichiamo che ora possiamo usare Docker senza sudo. Se non si ottiene l esecuzione di hello-world con un messaggio di errore simile a questo: Cannot connect to the Docker daemon. Is 'docker daemon' running on this host? Bisogna verificare che la variabile di ambiente DOCKER_HOST non sia settata per la shell. Se lo è, bisogna non settarla. 29
30 3.3.2 Regolare la Memoria e utilizzare lo Swap Accounting Lavorando con un immagine potrebbe capitare di avere messaggi di questo tipo: WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded. Per evitare di incorrere in questi messaggi bisogna abilitare la regolazione della memoria e dell utilizzo delle risorse sul sistema. Attivando quindi lo swap accounting si induce un sovraccarico di memoria ed un degrado delle prestazioni anche quando non viene utilizzato Docker. L overhead di memoria è di circa l 1% della memoria totale disponibile mentre il degrado delle prestazioni è di circa il 10%. Per abilitare lo swap accounting usando GNU GRUB (GNU GRand Unified Bootloader), bisogna effettuare le seguenti operazioni: 1. Effettuare l accesso in Ubuntu con i privilegi di amministratore (sudo) 2. Modificare il file /etc/default/grup 3. Impostare il valore GRUB_CMDLINE_LINUX in questo modo: 4. Salvare e chiudere il file. 5. Aggiornare GRUB. 6. Riavviare il sistema Configurare UFW (Uncomplicated Firewall) Utilizzando UFW (Uncomplicated Firewall), il firewall base di Ubuntu, sullo stesso host dove si esegue Docker, abbiamo bisogno di ulteriori configurazioni. Docker utilizza un bridge per gestire i contenitori di rete. Per impostazione predefinita, UFW potrebbe bloccare il traffico proveniente da Docker e di conseguenza, per eseguirlo dobbiamo impostare una politica appropriata nel nostro firewall. Inoltre, l insieme di regole predefinite di UFW impedisce tutto il traffico in entrata. Se si vuole come obiettivo quello di raggiungere i contenitori da un altro host allora bisogna 30
31 consentire anche le connessioni in entrata sulla porta Docker (default 2375). Ecco come configurare UFW e consentire le connessioni in entrata sulla porta Docker: 1. Log In in Ubuntu con privilegi di amministratore (sudo). 2. Verificare che UFW sia installato e abilitato 3. Aprire il file /etc/default/ufw per la modifica 4. Impostare la politica di default DEFAULT_FORWARD_POLICY in: 5. Salvare e chiudere il file. 6. Ricaricare UFW per utilizzare i nuovi settaggi. 7. Permettere connessioni in entrata sulla porta Docker Configurare un server DNS per l utilizzo in Docker I sistemi che eseguono Ubuntu o un suo derivato sul desktop utilizzano in genere come nameserver predefinito l indirizzo in /etc/resolv.conf. Il NetworkManager imposta dnsmaq per l utilizzo del DNS server reale per la connessione e imposta nameserver in /etc/resolv.conf. Quando si avviano contenitori su macchine desktop con queste configurazioni, gli utenti Docker ricevono questo avvertimento: WARNING: Local ( ) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [ ]. L avvertimento si verifica perché Docker non può utilizzare il nameserver DNS locale in 31
32 quanto di default utilizza un nameserver esterno. Per ovviare a ciò è possibile specificare un server DNS per farlo utilizzare ai contenitori Docker. In alternativa è anche possibile disattivare dnsmasq in NetworkManager anche se la disattivazione di dnsmasq potrebbe rendere la risoluzione DNS più lenta in alcune reti. Per specificare un server DNS da utilizzare con Docker bisogna: 1. Effettuare il Log In in Ubuntu come utente con privilegi da amministratore (sudo). 2. Aprire il file /etc/default/docker per modificarlo 3. Aggiungere l impostazione dns per Docker Sostituire con un server DNS locale come E inoltre possibile specificare più server DNS separandoli con degli spazi, ad esempio: Se stiamo eseguendo questa operazione su un computer portatile che si collega a varie reti bisogna assicurarsi di scegliere un server DNS pubblico. 4. Salvare e chiudere il file. 5. Riavviare il demone Docker Come abbiamo detto sopra, in alternativa a questa procedura, possiamo disattivare dnsmasq nel NetworkManager (ciò potrebbe rallentare la rete). 1. Aprire il file /etc/networkmanager/networkmanager.conf per modificarlo 32
33 2. Commentare la riga dns = dnsmasq: 3. Salvare e chiudere il file. 4. Riavviare sia il NetworkManager che Docker Configurare Docker per l avvio in fase di boot Ubuntu utilizza systemd come boot and service manager dalla versione in poi mentre upstart per le versioni fino alla Per le versioni dalla in poi per configurare il demone Docker ad avviarsi in automatico al boot bisogna eseguire questo comando: Per le versioni fino alla 14.10, invece, la procedura di installazione configura upstart in automatico in modo da avviare il demone Docker al boot del sistema Aggiornare o Disinstallare Docker Per installare l ultima versione di Docker con curl bisogna eseguire questo comando: Per disinstallare il pacchetto Docker: Per disinstallare il pacchetto Docker e le dipendenze che non sono pià necessarie: I comandi sopra elencati non rimuovono immagini, container o file di configurazione creati dagli utenti sul sistema host. Se si desidera eliminare tutto ciò, bisogna eseguire il comando: 33
34 È necessario eliminare i file di configurazione creati dall'utente manualmente. 3.4 Configurazione di un database Riak in un immagine Docker L'obiettivo di questo esempio è quello di mostrare come costruire un'immagine Docker con Riak preinstallato. Riak è un NoSQL key-value database distribuito che offre un alta tolleranza ai guasti, semplicità operativa e un elevata scalabilità. 1. Creiamo il Dockerfile Creiamo un file vuoto chiamato Dockerfile Definiamo poi l immagine genitore che utilizziamo come base per costruire la nostra immagine. Usiamo Ubuntu che è disponibile su Docker Hub: Dopo di che installiamo curl che viene utilizzato per scaricare lo script di installazione dalla repository, scarichiamo lo script e lo eseguiamo RUN apt-get install -q -y curl && \ curl -ssl sudo bash Poi dobbiamo installare e configurare alcune dipendenze: Supervisor: è usato gestire i processi Riak Riak = : è il pacchetto Riak codificato alla versione
35 Dopo di che modifichiamo la configurazione di Riak Poi, si espongono i protocolli Buffers Riak e le interfacce HTTP : Infine eseguiamo supervisord in modo da avviare Riak: 2. Creare un file di configurazione supervisord Bisogna creare un file vuoto chiamato supervisord.conf. Assicurarsi che sia nella stessa directory del Dockerfile: Riempirlo con il seguente codice: 35
Online Help StruxureWare Data Center Expert
Online Help StruxureWare Data Center Expert Version 7.2.7 StruxureWare Data Center ExpertDispositivo virtuale Il server StruxureWare Data Center Expert 7.2 è disponibile come dispositivo virtuale, supportato
DettagliIntroduzione alla Virtualizzazione
Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse
DettagliLezione 4 La Struttura dei Sistemi Operativi. Introduzione
Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)
DettagliIl web server Apache Lezione n. 3. Introduzione
Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar
DettagliSystem Center Virtual Machine Manager Library Management
System Center Virtual Machine Manager Library Management di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione La Server Virtualization è la possibilità di consolidare diversi server fisici in un unico
DettagliInstallazione e caratteristiche generali 1
Installazione e caratteristiche generali 1 Introduzione SIGLA Ultimate e SIGLA Start Edition possono essere utilizzati solo se sono soddisfatti i seguenti prerequisiti: Microsoft.Net Framework 3.5 (consigliato
DettagliApproccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
DettagliIBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)
IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento
DettagliArchitettura di un sistema operativo
Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi
DettagliProteggiamo il PC con il Firewall di Windows Vista
Proteggiamo il PC con il Firewall di Windows Vista Il momento in cui un computer è più a rischio e soggetto ad attacchi informatici, è quando è connesso a internet. Per proteggere il nostro PC ed evitare
DettagliManuale per la configurazione di AziendaSoft in rete
Manuale per la configurazione di AziendaSoft in rete Data del manuale: 7/5/2013 Aggiornamento del manuale: 2.0 del 10/2/2014 Immagini tratte da Windows 7 Versione di AziendaSoft 7 Sommario 1. Premessa...
DettagliVMware. Gestione dello shutdown con UPS MetaSystem
VMware Gestione dello shutdown con UPS MetaSystem La struttura informatica di una azienda Se ad esempio consideriamo la struttura di una rete aziendale, i servizi offerti agli utenti possono essere numerosi:
Dettagli11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0
11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE
Dettagli2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.
2010 Ing. Punzenberger COPA-DATA Srl Tutti i diritti riservati. Tutti i diritti riservati la distribuzione e la copia - indifferentemente dal metodo - può essere consentita esclusivamente dalla dittacopa-data.
DettagliVirtualizzazione VirtualBox 4.1.2 su Host Windows
Virtualizzazione VirtualBox 4.1.2 su Host Windows La virtualizzazione, quando riferita all informatica, consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente.
DettagliArchitetture Applicative
Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
DettagliFatti Raggiungere dal tuo Computer!!
Fatti Raggiungere dal tuo Computer!! Presentazione PcBridge è il modo rivoluzionario di accedere al proprio computer in qualsiasi momento e da qualsiasi luogo. Inserendo la penna usb OUT, Pcbridge permette
DettagliLa gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
DettagliPremessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia (www.wikipedia.com) e da un tutorial di Pierlauro Sciarelli su comefare.
Macchine virtuali Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia (www.wikipedia.com) e da un tutorial di Pierlauro Sciarelli su comefare.com 1. Cosa sono In informatica il termine
DettagliArchitetture software. Virtualizzazione
Sistemi Distribuiti Architetture software 1 Virtualizzazione 2 1 Virtualizzazione (motivazioni) Sullo stesso elaboratore possono essere eseguiti indipendentemente d t e simultaneamente t sistemi i operativi
DettagliNetwork Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale
Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:
DettagliSoftware di gestione della stampante
Questo argomento include le seguenti sezioni: "Uso del software CentreWare" a pagina 3-11 "Uso delle funzioni di gestione della stampante" a pagina 3-13 Uso del software CentreWare CentreWare Internet
DettagliSoftware di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche
Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica
DettagliProgetto Virtualizzazione
Progetto Virtualizzazione Dipartimento e Facoltà di Scienze Statistiche Orazio Battaglia 25/11/2011 Dipartimento di Scienze Statiche «Paolo Fortunati», Università di Bologna, via Belle Arti 41 1 La nascita
DettagliMODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
DettagliIstruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)
Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza
DettagliInput/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche
Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli
DettagliIT Cloud Service. Semplice - accessibile - sicuro - economico
IT Cloud Service Semplice - accessibile - sicuro - economico IT Cloud Service - Cos è IT Cloud Service è una soluzione flessibile per la sincronizzazione dei file e la loro condivisione. Sia che si utilizzi
DettagliDEFINIZIONI VM: abbreviazione di Virtual Machine (macchina virtuale).
DEFINIZIONI VM: abbreviazione di Virtual Machine (macchina virtuale). Ambiente autonomo composto da diversi dispositivi hardware, che per quanto emulati possono essere gestiti come se fossero reali. Host
DettagliConsiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica
Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo
DettagliSoftware per Helpdesk
Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella
DettagliMac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
DettagliLa virtualizzazione ed i suoi aspetti di sicurezza. Sergio Sagliocco Responsabile SecureLAB Direzione R&D CSP
La virtualizzazione ed i suoi aspetti di sicurezza Sergio Sagliocco Responsabile SecureLAB Direzione R&D CSP Presentazione della Monografia - CAP 1: La virtualizzazione: concetti di base - CAP 2: La virtualizzazione
DettagliCorso di Amministrazione di Reti A.A. 2002/2003
Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliInstallazione di GFI WebMonitor
Installazione di GFI WebMonitor Requisiti di sistema di GFI WebMonitor Server Microsoft Windows 2000 (SP 3) o 2003. Microsoft ISA 2000 Server (non in modalità solo firewall) OPPURE Server Microsoft ISA
DettagliCon il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
DettagliSistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL
STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione
DettagliThe Onion PC. Virtualizzazione strato dopo strato
The Onion PC Virtualizzazione strato dopo strato Cos'è un livello di astrazione? Cos'è un livello di astrazione? Nell'esecuzione di un programma un livello di astrazione rappresenta i gradi di libertà
DettagliCorso di Informatica
Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo
DettagliDefinizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base
Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore
DettagliLA GESTIONE DELLE VISITE CLIENTI VIA WEB
LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici
DettagliSPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)
SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli) Le seguenti istruzioni sono relative all installazione di SPSS Statistics con licenza per utenti singoli. Una
DettagliGestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
DettagliIl Sistema Operativo (1)
E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale
DettagliApprofondimenti. Contenuti
Approfondimenti dott. Stefano D. Fratepietro steve@stevelab.net C I R S F I D Università degli studi di Bologna stevelab.net Creative Commons license Stefano Fratepietro - www.stevelab.net 1 Contenuti
DettagliAggiornare applicazioni virtualizzate con App-V
Aggiornare applicazioni virtualizzate con App-V di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione Mantenere un infrastruttura virtuale basata su Application Virtualization aiuta a diminuire sensibilmente
DettagliLa VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I
La VPN con il FRITZ!Box Parte I 1 Introduzione In questa mini-guida illustreremo come realizzare un collegamento tramite VPN(Virtual Private Network) tra due FRITZ!Box, in modo da mettere in comunicazioni
DettagliIBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)
IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento
DettagliProgettare un Firewall
Progettare un Firewall Danilo Demarchi danilo@cuneo.linux.it GLUG Cuneo Corso Sicurezza 2006 Concetti introduttivi Come pensare un Firewall Argomenti trattati I Gli strumenti del Firewall Gli strumenti
DettagliPIATTAFORMA DOCUMENTALE CRG
SISTEMA DI GESTIONE DOCUMENTALE DMS24 PIATTAFORMA DOCUMENTALE CRG APPLICAZIONE PER LE PROCEDURE DI GARE D AMBITO 1 AGENDA 1. Introduzione 2. I Livelli di accesso 3. Architettura di configurazione 4. Accesso
DettagliI Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
DettagliRiferimento rapido per l'installazione SUSE Linux Enterprise Server 11
Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11 NOVELL SCHEDA INTRODUTTIVA Seguire le procedure riportate di seguito per installare una nuova versione di SUSE Linux Enterprise 11.
DettagliSDD System design document
UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs
DettagliNota Tecnica UBIQUITY 5 TN0019. Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity.
UBIQUITY 5 Introduzione Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity. Versione Descrizione Data 1 Prima emissione 20/01/2015 Disclaimer Le informazioni
DettagliRiferimento rapido per l'installazione SUSE Linux Enterprise Server 11 SP1
Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11 SP1 Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11 SP1 NOVELL SCHEDA INTRODUTTIVA Seguire le procedure riportate
DettagliDomande e risposte su Avira ProActiv Community
Domande e risposte su Avira ProActiv Community Avira AntiVir versione 10 sfrutta un innovativa tecnologia protettiva cloud-based, denominata ProActiv, che identifica e blocca i nuovi virus non appena questi
DettagliVIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008
VIRTUALIZZAZIONE LUG - CREMONA Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE In informatica la virtualizzazione consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente
DettagliIl sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione
Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia
Dettagliprogecad NLM Guida all uso Rel. 10.2
progecad NLM Guida all uso Rel. 10.2 Indice Indice... 2 Introduzione... 3 Come Iniziare... 3 Installare progecad NLM Server... 3 Registrare progecad NLM Server... 3 Aggiungere e attivare le licenze...
DettagliSupporto On Line Allegato FAQ
Supporto On Line Allegato FAQ FAQ n.ro MAN-8NQLJY70768 Data ultima modifica 26/01/2012 Prodotto Dichiarazioni Fiscali 2012 Modulo Studi di Settore Oggetto Servizio di attivazione Studi WKI In giallo le
DettagliCreare una Rete Locale Lezione n. 1
Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliDipartimento di Scienze Applicate
DIPARTIMENTO DI SCIENZE APPLICATE Università degli Studi di Napoli Parthenope Centro Direzionale di Napoli Isola C4 80143 Napoli dsa@uniparthenope.it P. IVA 01877320638 Dipartimento di Scienze Applicate.
DettagliCon accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.
Tecnologie informatiche ACCESSO REMOTO CON WINDOWS Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Un esempio di tale servizio
Dettagli1. opzione 1, ubuntu accanto a windows
INSTALLARE UBUNTU LINUX Per installare Ubuntu, si possono scegliere 3 diverse opzioni: 1. installazione accanto (o al posto) di windows 2. installazione all'interno di windows tramite Wubi 3. installazione
DettagliINDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP
INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP Un indirizzo IP è composto da 32 bit. Generalmente, per convenienza, è presentato in decimale: 4 ottetti (bytes) separati da un punto. Ogni rete fisica
DettagliCOMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015
COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 Vicenza, 3 giugno 2015 Gentile cliente, si ricorda che a partire dall aggiornamento PROFIS 2011.1 è stato automatizzato
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliCapitolo 4 Pianificazione e Sviluppo di Web Part
Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,
DettagliIntroduzione alle tecnologie informatiche. Strumenti mentali per il futuro
Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle
DettagliStudi di Settore. Nota Operativa 22/4/2013
Nota Operativa Studi di Settore 22/4/2013 Sommario Valutazione casistiche... 2 Errore di connessione... 2 Sistema operativo non aggiornato... 2 File non installato client... 2 File non installato server...
Dettagli. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi
Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare
DettagliInizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
DettagliIl SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)
Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può
DettagliASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX
Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata
DettagliSISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
DettagliDOCUMENTAZIONE POISSON
DOCUMENTAZIONE POISSON INDICE: 1. Primo approccio all'interfaccia 2. Distribuzione dei dati 3. Effettuare una elaborazione e una lettura dell'elaborazione 4. Sistema di aggiornamenti 5. Assistenza 6. Acquisto
DettagliManuale LiveBox WEB ADMIN. http://www.liveboxcloud.com
2014 Manuale LiveBox WEB ADMIN http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa
DettagliTi consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.
Sommario A cosa serve InfoWEB?... 3 Quali informazioni posso comunicare o ricevere?... 3 Cosa significa visualizzare le informazioni in maniera differenziata in base al livello dell utente?... 4 Cosa significa
DettagliLa piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati
La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma
DettagliServizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti
20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1
DettagliIBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)
IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento
DettagliManuale di KSystemLog. Nicolas Ternisien
Nicolas Ternisien 2 Indice 1 Usare KSystemLog 5 1.1 Introduzione......................................... 5 1.1.1 Cos è KSystemLog?................................ 5 1.1.2 Funzionalità.....................................
DettagliBMSO1001. Orchestrator. Istruzioni d uso 02/10-01 PC
BMSO1001 Orchestrator Istruzioni d uso 02/10-01 PC 2 Orchestrator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti fondamentali 4
DettagliSetup dell ambiente virtuale
Setup dell ambiente virtuale 1.1 L immagine per le macchine virtuali Il file mininet-vm-x86 64.qcow è l immagine di una memoria di massa su cui è installato un sistema Linux 3.13 Ubuntu 14.04.1 LTS SMP
DettagliIl Sistema Operativo. C. Marrocco. Università degli Studi di Cassino
Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.
DettagliIstruzioni di installazione di IBM SPSS Modeler Text AnalyticsServer per Windows
Istruzioni di installazione di IBM SPSS Modeler Text AnalyticsServer per Windows IBM SPSS Modeler Text Analytics Server può essere installato e configurato per essere eseguito su un computer su cui è in
DettagliMODEM USB MDC525UP Guida Rapida LINUX
MODEM USB MDC525UP Guida Rapida LINUX Sommario Introduzione... 2 Requisiti minimi... 2 Contenuto del CD-ROM... 2 Procedura di installazione per Driver e Software di connessione... 3 Installazione/rimozione
DettagliLaCie Ethernet Disk mini Domande frequenti (FAQ)
LaCie Ethernet Disk mini Domande frequenti (FAQ) Installazione Che cosa occorre fare per installare l unità LaCie Ethernet Disk mini? A. Collegare il cavo Ethernet alla porta LAN sul retro dell unità LaCie
DettagliSistemi operativi. Esempi di sistemi operativi
Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema
DettagliNAS 224 Accesso remoto Configurazione manuale
NAS 224 Accesso remoto Collegamento al NAS ASUSTOR tramite Internet A S U S T O R C O L L E G E OBIETTIVI DEL CORSO Al termine di questo corso si dovrebbe essere in grado di: 1. Configurare il sistema
DettagliNOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0
Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2
DettagliPer chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass
0_Iniziare con GRASS Avvio di Grass e creazione della cartella del Database di GRASS Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass
DettagliFPf per Windows 3.1. Guida all uso
FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete
Dettagliuadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda
Fa quadrato attorno alla tua azienda Soluzioni software per L archiviazione elettronica dei documenti Perché scegliere Q Archiviazione Elettronica dei Documenti? Tale applicativo si pone come obbiettivo
DettagliCapitolo 1 Installazione del programma
Capitolo 1 Installazione del programma Requisiti Hardware e Software Per effettuare l installazione del software Linea Qualità ISO, il computer deve presentare una configurazione minima così composta:
DettagliCOMUNIC@CTION INVIO SMS
S I G e s t S.r.l S e d e l e g a l e : V i a d e l F o r n o 3 19125 L a S p e z i a T e l e f o n o 0187/284510/15 - F a x 0187/525519 P a r t i t a I V A 01223450113 COMUNIC@CTION INVIO SMS GUIDA ALL
DettagliProcedura per la configurazione in rete di DMS.
Procedura per la configurazione in rete di DMS. Sommario PREMESSA... 2 Alcuni suggerimenti... 2 Utilizzo di NAS con funzione di server di rete - SCONSIGLIATO:... 2 Reti wireless... 2 Come DMS riconosce
DettagliInstallazione LINUX 10.0
Installazione LINUX 10.0 1 Principali passi Prima di iniziare con l'installazione è necessario entrare nel menu di configurazione del PC (F2 durante lo start-up) e selezionare nel menu di set-up il boot
Dettagli