GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come creare un'immagine Docker da un contenitore e un file Docker

Docker è uno strumento di gestione della piattaforma aperta per i container Linux. Fornisce un mezzo per sviluppatori e amministratori di sistema per creare e impacchettare applicazioni in contenitori leggeri. Docker è costituito dai seguenti componenti:

  • Motore Docker – Uno strumento di runtime e packaging portatile e leggero
  • Hub Docker – Un servizio cloud per la condivisione di applicazioni e l'automazione dei flussi di lavoro

Docker viene utilizzato per creare contenitori di applicazioni basati su immagini. I contenitori basati su immagini creano un pacchetto di un'applicazione con il singolo stack di runtime in un unico contenitore. Ciò rende il contenitore indipendente dal sistema operativo host e dalla versione del kernel. Di conseguenza, puoi eseguire la stessa applicazione, invariata, su laptop, macchine virtuali di data center e qualsiasi cloud. Puoi trasferire questo contenitore su un altro computer che esegue Docker ed eseguire l'applicazione senza problemi di compatibilità.

Creazione di un'immagine da un contenitore

Puoi salvare lo stato corrente di un contenitore come una nuova immagine utilizzando il "commit docker comando ". Ciò è utile se hai modificato un contenitore e desideri eseguire il commit delle modifiche in una nuova immagine per un uso successivo.

L'esempio nella diapositiva crea un nuovo contenitore denominato "geeklab" dall'immagine centos:7 ed esegue il comando bash shell nel contenitore.

# docker run -i -t --name geeklab centos:7 /bin/bash
[root@873abc18f59d /]# 

Dall'interno del contenitore, il comando yum viene utilizzato per installare il pacchetto httpd.

[root@873abc18f59d /]# yum install httpd

Usa il comando exit per fermare un container in esecuzione.

[root@873abc18f59d /]# exit
exit

Il comando "docker commit" salva le modifiche in una nuova immagine. Utilizzare l'opzione -m per fornire un messaggio che descrive le modifiche. Usa il -a possibilità di fornire informazioni sull'autore. Fornisci l'ID o il nome del contenitore, il nome dell'immagine e un tag. Esempio:

# docker commit -m="CentOS 7 With httpd installed" -a "Geek Lab" geeklab centos7/httpd:v1
sha256:b3c42dd36e247cabcfaf134afb4765e9853ebfbe856c8d785f65cfafc9fd53cd

L'output del comando Docker images ora include la nuova immagine.

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos7/httpd       v1                  b3c42dd36e24        20 seconds ago      334 MB

Creazione di un'immagine da un Dockerfile

Usa il comando docker build per creare una nuova immagine dalle istruzioni contenute in un file denominato “Dockerfile “. Il formato del Dockerfile è:

# Comment
INSTRUCTION      arguments

L'istruzione non fa distinzione tra maiuscole e minuscole, ma la convenzione consiste nel mettere in maiuscolo l'istruzione per distinguerla dagli argomenti. Docker esegue le istruzioni in un Dockerfile in ordine. Costruisci una nuova immagine da un'immagine di base. La prima istruzione è FROM e specifica l'immagine di base da utilizzare. Esempio:

FROM centos:7

Utilizzare l'istruzione RUN per specificare i comandi da eseguire in un nuovo livello sopra l'immagine corrente e confermare i risultati. Esempio:

RUN yum –y install httpd

L'istruzione ENTRYPOINT specifica il comando eseguito dal contenitore creato dall'immagine. Esempio:

ENTRYPOINT /usr/sbin/httpd –D FOREGROUND

Fare riferimento alla pagina man di dockerfile per una descrizione di tutte le istruzioni. Il seguente URL fornisce anche descrizioni, utilizzo ed esempi di tutte le istruzioni disponibili per Dockerfile:https://docs.docker.com/reference/builder/.

Salva e carica un'immagine o un contenitore

Puoi creare file tar di immagini e contenitori da utilizzare su sistemi che non hanno accesso a Docker Hub. Utilizza il "salvataggio nella finestra mobile ” comando per salvare le immagini in un file tar. Puoi salvare tutte le immagini in un repository in un file tar o salvare un'immagine specifica in un file tar. Crea il file tar reindirizzando STDOUT a un file tar o usa l'opzione -o per specificare un nome di file tar di output.

L'esempio seguente reindirizza STDOUT per salvare tutte le immagini nel repository centos su centos-all.tar:

# docker save centos > centos-all.tar

L'esempio seguente salva l'immagine centos:latest nel file centos-lates.tar.

# docker save -o=centos-latest.tar centos:latest

Utilizzare il comando docker load per caricare un'immagine da un file tar in un repository Docker locale. L'esempio seguente carica le immagini dal file centos-all.tar:

# docker load --input centos-all.tar
Guida per principianti al mondo Docker


Docker
  1. Come creare, elencare ed eliminare contenitori Docker su Linux

  2. Estrarre il file dall'immagine Docker?

  3. Come imballare e trasferire immagini Docker da un server all'altro

  4. Come staccare da un contenitore Docker senza fermarlo

  5. Come eseguire il backup e il ripristino dei container Docker

Come creare un'immagine Docker da un contenitore in esecuzione

Come creare un contenitore dell'applicazione Django Docker

Come creare un'immagine di Windows Docker con il tag di build Docker

Come distribuire e gestire un contenitore Docker MongoDB

Come utilizzare Docker Salva immagine ed esporta per la condivisione

Come creare un'immagine Docker personalizzata con Dockerfile