{"id":36772,"date":"2019-10-31T22:13:44","date_gmt":"2019-10-31T19:13:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ponimaya-docker\/"},"modified":"2019-10-31T22:13:44","modified_gmt":"2019-10-31T19:13:44","slug":"ponimaya-docker","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"Comprendere Docker","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Da diversi mesi utilizzo Docker per strutturare il processo di sviluppo e distribuzione di progetti web. Propongo ai lettori di \u00abHabrHabr\u00bb la traduzione dell'articolo introduttivo su Docker \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\u00abComprendere Docker\u00bb<\/a><\/noindex>.<\/i><\/p>\n<h3>Che cos'\u00e8 Docker?<\/h3>\n<p>\nDocker \u00e8 una piattaforma open source per lo sviluppo, la distribuzione e l'esecuzione di applicazioni. Docker \u00e8 progettato per rendere pi\u00f9 rapida la distribuzione delle tue applicazioni. Con Docker, puoi separare la tua applicazione dalla tua infrastruttura e gestire l'infrastruttura come un'applicazione controllata. Docker aiuta a pubblicare il tuo codice pi\u00f9 rapidamente, a testare pi\u00f9 velocemente, a rilasciare applicazioni in modo pi\u00f9 efficace e a ridurre il tempo tra la scrittura del codice e il suo avvio. Docker fa questo tramite una leggera piattaforma di virtualizzazione a container, utilizzando processi e strumenti che facilitano la gestione e la distribuzione delle tue applicazioni.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNel suo nucleo, Docker consente di eseguire praticamente qualsiasi applicazione, isolata in modo sicuro all'interno di un contenitore. L'isolamento sicuro permette di eseguire pi\u00f9 contenitori contemporaneamente su un singolo host. La natura leggera del contenitore, che viene eseguito senza il carico aggiuntivo di un hypervisor, consente di ottenere di pi\u00f9 dall'hardware.<\/p>\n<p>La piattaforma e gli strumenti di virtualizzazione dei contenitori possono essere utili nei seguenti casi:<\/p>\n<ul>\n<li>imballare la tua applicazione (e i relativi componenti) all'interno dei contenitori Docker;<\/li>\n<li>distribuire e fornire questi contenitori ai tuoi team per lo sviluppo e il collaudo;<\/li>\n<li>pubblicare questi contenitori nelle tue ambientazioni di produzione, sia in data center che nel cloud.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Per cosa posso utilizzare Docker?<\/h3>\n<p><\/p>\n<h4>Pubblicazione rapida delle tue applicazioni<\/h4>\n<p>\nDocker \u00e8 particolarmente adatto per organizzare il ciclo di sviluppo. Docker consente agli sviluppatori di utilizzare contenitori locali con applicazioni e servizi, permettendo successivamente l'integrazione con i processi di integrazione continua e distribuzione (workflow di continuous integration and deployment).<\/p>\n<p>Ad esempio, i vostri sviluppatori scrivono codice localmente e condividono il loro stack di sviluppo (una serie di immagini Docker) con i colleghi. Quando sono pronti, inviano il codice e i container nell'ambiente di test e eseguono tutti i test necessari. Dall'ambiente di test possono inviare il codice e le immagini in produzione.<\/p>\n<h4>Distribuzione e implementazione pi\u00f9 semplici<\/h4>\n<p>\nLa piattaforma basata su container Docker consente di portare facilmente la vostra carga utile. I container Docker possono funzionare sulla vostra macchina locale, sia fisica che virtuale nel data center, e nel cloud.<\/p>\n<p>La portabilit\u00e0 e la leggerezza di Docker consentono di gestire dinamicamente il vostro carico. \u00c8 possibile utilizzare Docker per implementare o arrestare la vostra applicazione o i vostri servizi. La velocit\u00e0 di Docker permette di farlo quasi in tempo reale.<\/p>\n<h4>Alti carichi e maggiore carga utile<\/h4>\n<p>\nDocker \u00e8 leggero e veloce. Fornisce un'alternativa stabile e conveniente alle macchine virtuali basate su hypervisor. \u00c8 particolarmente utile in condizioni di alto carico, ad esempio nella creazione di un proprio cloud o piattaforma come servizio (platform-as-service). Ma \u00e8 altrettanto vantaggioso per piccole e medie applicazioni, quando desideri ottenere di pi\u00f9 dalle risorse disponibili.<\/p>\n<h3>Componenti principali di Docker<\/h3>\n<p>\nDocker \u00e8 composto da due componenti principali:<\/p>\n<ul>\n<li>Docker: piattaforma di virtualizzazione con codice sorgente aperto;<\/li>\n<li>Docker Hub: la nostra piattaforma come servizio per distribuire e gestire i container Docker.<\/li>\n<\/ul>\n<p>\n<i>Nota! Docker \u00e8 distribuito sotto licenza Apache 2.0.<\/i><\/p>\n<h3>Architettura di Docker<\/h3>\n<p><\/p>\n<p>Docker utilizza un'architettura client-server. Il client Docker comunica con il demone Docker, che si occupa della creazione, esecuzione e distribuzione dei tuoi container. Entrambi, client e server, possono funzionare su un'unica macchina, e puoi collegare il client a un demone Docker remoto. Client e server comunicano tramite socket o tramite un'API RESTful.<\/p>\n<p><img decoding=\"async\" alt=\"Comprendere Docker\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Demone Docker<\/h4>\n<p>\nCome mostrato nel diagramma, il demone viene eseguito sulla macchina host. L'utente non interagisce direttamente con il server, ma utilizza un client per farlo.<\/p>\n<h4>Client Docker<\/h4>\n<p>\nIl client Docker, il programma docker, \u00e8 l'interfaccia principale per Docker. Riceve comandi dall'utente e interagisce con il demone docker.<\/p>\n<h4>All'interno di Docker<\/h4>\n<p>\nPer comprendere cosa costituisce Docker, \u00e8 necessario sapere tre componenti:<\/p>\n<ul>\n<li>immagini (images)<\/li>\n<li>registri (registries)<\/li>\n<li>container<\/li>\n<\/ul>\n<h4>Le immagini<\/h4>\n<p>\nUn'immagine Docker \u00e8 un modello in sola lettura. Ad esempio, un'immagine pu\u00f2 contenere un sistema operativo Ubuntu con Apache e un'applicazione in esecuzione su di essa. Le immagini vengono utilizzate per creare contenitori. Docker consente di creare facilmente nuove immagini, aggiornare quelle esistenti, o \u00e8 possibile scaricare immagini create da altri. Le immagini sono una componente fondamentale di Docker.<\/p>\n<h4>Registro<\/h4>\n<p>\nIl registro Docker memorizza le immagini. Ci sono registri pubblici e privati da cui \u00e8 possibile scaricare o caricare immagini. Il registro pubblico di Docker \u00e8 <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Qui si trova un'enorme collezione di immagini. Come sapete, le immagini possono essere create da voi o potete utilizzare immagini create da altri. I registri sono una componente fondamentale della distribuzione.<\/p>\n<h4>Container<\/h4>\n<p>\nI container sono simili a directory. All'interno dei container c'\u00e8 tutto ci\u00f2 che serve per far funzionare un'applicazione. Ogni container viene creato da un'immagine. I container possono essere creati, avviati, arrestati, spostati o eliminati. Ogni container \u00e8 isolato ed \u00e8 una piattaforma sicura per l'applicazione. I container sono componenti fondamentali del funzionamento.<\/p>\n<h4>Come funziona Docker?<\/h4>\n<p>\nFinora sappiamo che:<\/p>\n<ul>\n<li>possiamo creare immagini che contengono le nostre applicazioni;<\/li>\n<li>possiamo creare container dalle immagini per eseguire le applicazioni;<\/li>\n<li>possiamo distribuire immagini tramite Docker Hub o un altro registro di immagini.<\/li>\n<\/ul>\n<p>\nDiamo un'occhiata a come si combinano questi componenti.<\/p>\n<h4>Come funziona un'immagine?<\/h4>\n<p>\nSappiamo gi\u00e0 che un'immagine \u00e8 un modello in sola lettura, da cui viene creato un container. Ogni immagine \u00e8 composta da un insieme di livelli. Docker utilizza <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">union file system<\/a><\/noindex> per combinare questi livelli in un'unica immagine. L'union file system consente a file e directory provenienti da diversi file system (diverse ramificazioni) di sovrapporsi in modo trasparente, creando un file system coerente.<\/p>\n<p>Una delle ragioni per cui Docker \u00e8 leggero \u00e8 l'uso di strati. Quando modifichi un'immagine, ad esempio, aggiornando un'applicazione, viene creato un nuovo strato. Cos\u00ec, senza sostituire l'intera immagine o ricostruirla, come potresti dover fare con una macchina virtuale, viene solo aggiunto o aggiornato uno strato. E non \u00e8 necessario distribuire l'intera nuova immagine, si distribuisce solo l'aggiornamento, rendendo pi\u00f9 facile e veloce la diffusione delle immagini.<\/p>\n<p>Alla base di ogni immagine c'\u00e8 un'immagine di base. Ad esempio, ubuntu, l'immagine di base di Ubuntu, o fedora, l'immagine di base della distribuzione Fedora. Puoi anche usare le immagini come base per crearne di nuove. Ad esempio, se hai un'immagine apache, puoi usarla come immagine di base per le tue applicazioni web.<\/p>\n<p><i>Nota! Docker prende solitamente le immagini dal registro Docker Hub.<\/i><\/p>\n<p>Le immagini di Docker possono essere create da queste immagini di base, i passi per creare queste immagini vengono chiamati istruzioni. Ogni istruzione crea una nuova immagine o strato. Le istruzioni saranno le seguenti azioni:<\/p>\n<p><\/p>\n<ul>\n<li>eseguire un comando<\/li>\n<li>aggiungere un file o una directory<\/li>\n<li>creare una variabile d'ambiente<\/li>\n<li>Istruzioni su cosa eseguire quando viene avviato il contenitore di questa immagine<\/li>\n<\/ul>\n<p>Queste istruzioni vengono memorizzate in un file <code>Dockerfile<\/code>. Docker legge questo <code>Dockerfile<\/code>, quando costruisci l'immagine, esegue queste istruzioni e restituisce l'immagine finale.<\/p>\n<h4>Come funziona il registro Docker?<\/h4>\n<p>\nIl registro \u00e8 un deposito di immagini Docker. Dopo aver creato un'immagine, puoi pubblicarla su un registro pubblico Docker Hub o sul tuo registro personale.<\/p>\n<p>Con il client Docker puoi cercare immagini gi\u00e0 pubblicate e scaricarle sulla tua macchina con Docker per creare contenitori.<\/p>\n<p>Docker Hub offre depositi pubblici e privati di immagini. La ricerca e il download di immagini da depositi pubblici sono disponibili per tutti. Il contenuto dei depositi privati non appare nei risultati di ricerca. Solo tu e i tuoi utenti potete accedere a queste immagini e creare contenitori da esse.<\/p>\n<h4>Come funziona un contenitore?<\/h4>\n<p>\nIl contenitore \u00e8 composto dal sistema operativo, file utente e metadati. Come sappiamo, ogni contenitore \u00e8 creato a partire da un'immagine. Questa immagine indica a Docker cosa c'\u00e8 nel contenitore, quale processo avviare quando il contenitore viene avviato e altri dati di configurazione. L'immagine Docker \u00e8 disponibile solo in lettura. Quando Docker avvia un contenitore, crea un livello di lettura\/scrittura sopra l'immagine (utilizzando il file system union, come menzionato in precedenza), dove pu\u00f2 essere eseguita l'applicazione.<\/p>\n<h4>Cosa succede quando viene avviato un contenitore?<\/h4>\n<p>\nO attraverso un programma <code>docker<\/code>, oppure tramite l'API RESTful, il client Docker comunica al demone Docker di avviare il contenitore.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nAnalizziamo questo comando. Il client viene avviato con il comando <code>docker<\/code>, con l'opzione <code>run<\/code>, che indica che verr\u00e0 avviato un nuovo contenitore. I requisiti minimi per avviare un contenitore sono i seguenti attributi:<\/p>\n<ul>\n<li>quale immagine utilizzare per creare il contenitore. Nel nostro caso <code>ubuntu<\/code><\/li>\n<li>il comando che desideri eseguire quando il contenitore viene avviato. Nel nostro caso <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>Cosa succede realmente dietro le quinte quando eseguiamo questo comando?<\/p>\n<p>Docker, in sequenza, fa quanto segue:<\/p>\n<ul>\n<li><b>scarica l'immagine ubuntu:<\/b> docker controlla se l'immagine <code>ubuntu<\/code> \u00e8 presente sulla macchina locale, e se non c'\u00e8, la scarica da <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Se l'immagine \u00e8 gi\u00e0 presente, la utilizza per creare il contenitore;<\/li>\n<li><b>crea il contenitore:<\/b> una volta ottenuta l'immagine, docker la utilizza per creare il contenitore;<\/li>\n<li><b>inizializza il filesystem e monta il livello in modalit\u00e0 di sola lettura:<\/b> il contenitore \u00e8 creato nel filesystem e il livello in sola lettura \u00e8 aggiunto all'immagine;<\/li>\n<li><b>inizializza la rete\/bridge:<\/b> crea un'interfaccia di rete che consente a docker di comunicare con la macchina host;<\/li>\n<li><b>Imposta l'indirizzo IP:<\/b> trova e assegna l'indirizzo;<\/li>\n<li><b>Avvia il processo specificato:<\/b> avvia la tua applicazione;<\/li>\n<li><b>Elabora e restituisce l'output della tua applicazione:<\/b> si collega e registra l'input standard, l'output e lo stream di errori della tua applicazione, permettendoti di monitorare come funziona.<\/li>\n<\/ul>\n<p>\nOra hai un contenitore funzionante. Puoi gestire il tuo contenitore, interagire con la tua applicazione. Quando decidi di fermare l'applicazione, rimuovi il contenitore.<\/p>\n<h3>Tecnologie utilizzate<\/h3>\n<p>\nDocker \u00e8 scritto in Go e utilizza alcune funzionalit\u00e0 del kernel Linux per implementare la funzionalit\u00e0 sopra descritta.<\/p>\n<h4>Spazi dei nomi (namespaces)<\/h4>\n<p>\nDocker utilizza la tecnologia <code>namespaces<\/code> per organizzare spazi di lavoro isolati, che chiamiamo contenitori. Quando avviamo un contenitore, Docker crea un insieme di spazi dei nomi per quel contenitore.<\/p>\n<p>Questo crea un livello isolato, ogni aspetto del contenitore viene eseguito nel proprio spazio dei nomi e non ha accesso al sistema esterno.<\/p>\n<p>Ecco un elenco di alcuni spazi dei nomi utilizzati da Docker:<\/p>\n<ul>\n<li><b>pid:<\/b> per l'isolamento dei processi;<\/li>\n<li><b>net:<\/b> per gestire le interfacce di rete;<\/li>\n<li><b>ipc:<\/b> per gestire le risorse IPC. (IPC: comunicazione interprocesso);<\/li>\n<li><b>mnt:<\/b> per gestire i punti di montaggio;<\/li>\n<li><b>utc:<\/b> per isolare il kernel e controllare la generazione delle versioni (UTC: sistema di condivisione del tempo Unix).<\/li>\n<\/ul>\n<h4>Gruppi di controllo (control groups)<\/h4>\n<p>\nDocker utilizza anche la tecnologia <code>cgroups<\/code> o gruppi di controllo. La chiave per il funzionamento dell'applicazione in isolamento \u00e8 fornire all'applicazione solo le risorse che si desidera concedere. Ci\u00f2 garantisce che i container siano buoni vicini. I gruppi di controllo consentono di suddividere le risorse disponibili dell'hardware e, se necessario, impostare limiti e restrizioni. Ad esempio, limitare la quantit\u00e0 di memoria che un container pu\u00f2 utilizzare.<\/p>\n<h4>Union File System<\/h4>\n<p>\nUnion File System o UnionFS \u00e8 un file system che funziona creando livelli, rendendolo molto leggero e veloce. Docker utilizza UnionFS per creare i blocchi da cui \u00e8 composto un container. Docker pu\u00f2 utilizzare diverse varianti di UnionFS, tra cui: AUFS, btrfs, vfs e DeviceMapper.<\/p>\n<h4>Formati dei container<\/h4>\n<p>\nDocker combina questi componenti in una fascia, che chiamiamo formato del container. Il formato predefinito si chiama <code>libcontainer<\/code>. Inoltre, Docker supporta il formato tradizionale dei container in Linux tramite <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. In futuro, Docker potrebbe supportare altri formati di container, ad esempio integrandosi con BSD Jails o Solaris Zones.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/253877\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36772","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Comprendere Docker | ProHoster","description":"Da diversi mesi utilizzo Docker per strutturare il processo di sviluppo\/consegna di progetti web. Propongo ai lettori di \u00abHabrHab\u00bb la traduzione dell'articolo introduttivo su Docker \u2014 \u00abUnderstanding Docker\u00bb. Cos'\u00e8 Docker? Docker \u00e8 una piattaforma aperta per lo sviluppo, la consegna e l'esecuzione di applicazioni. Docker \u00e8 progettato per facilitare il rilascio pi\u00f9 rapido delle tue applicazioni. Con Docker puoi separare la tua applicazione dalla tua infrastruttura e","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ponimaya-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster","og:description":"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ponimaya-docker","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:44+00:00","article:modified_time":"2019-10-31T19:13:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36772","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:47:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:39:22","updated":"2026-01-22 04:47:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/36772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}