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

Docker

Docker è un motore open source estensibile basato su Linux Containers che automatizza la distribuzione di applicazioni come contenitori portatili, leggeri e autosufficienti. Ai fini di questo tutorial, supponiamo che tu abbia seguito i passaggi descritti nella nostra Configurazione e protezione di un'istanza di calcolo, che il tuo sistema sia aggiornato e che tu abbia effettuato l'accesso a Linode come root tramite SSH.

Installazione

Ai fini di questa guida, ti mostreremo come installare Docker sia su Ubuntu 12.04 che su CentOS 6.4 Docker fornisce repository per ciascuna di queste distribuzioni, il che semplifica l'installazione.

Ubuntu 12.04 64bit

Qui aggiungeremo il repository mantenuto da Docker per Ubuntu e installeremo il software.

  1. Docker è disponibile come pacchetto nei repository Ubuntu di Docker, ma solo per 64 bit. Innanzitutto, dovrai aggiungere la chiave del repository Docker utilizzando apt-key :

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
    
  2. Aggiungi il repository Docker ai tuoi sorgenti apt:

    echo "deb http://get.docker.io/ubuntu docker main" | sudo tee /etc/apt/sources.list.d/docker.list
    
  3. Esegui quanto segue per apt-get update e installa lxc-docker :

    sudo apt-get update
    sudo apt-get install lxc-docker
    
  4. Per verificare che l'installazione sia stata completata correttamente, avvia un contenitore Ubuntu di esempio. Questo comando acquisirà automaticamente tutte le immagini mancanti, eseguirà il contenitore e fornirà una sessione bash interattiva:

    sudo docker run -i -t ubuntu /bin/bash
    

    L'output dovrebbe essere simile a:

    # docker run -i -t ubuntu /bin/bash
    Unable to find image 'ubuntu' (tag: latest) locally
    Pulling repository ubuntu
    8dbd9e392a96: Download complete
    b750fe79269d: Download complete
    27cf78414709: Download complete
    [email protected]:/#
  5. Per uscire dal contenitore, digita exit .

CentOS 6 64bit

Docker è disponibile nel repository EPEL come docker-io pacchetto solo per 64 bit.

  1. Per aggiungere il repository EPEL, installa il pacchetto latestepel-release.

  2. Per installare Docker, esegui il seguente comando:

    sudo yum -y install docker-io
    
  3. Per avviare il demone Docker, invoca service :

    sudo service docker start
    
  4. Se desideri che il demone Docker si avvii all'avvio, immetti il ​​seguente comando:

    sudo chkconfig docker on
    
  5. Per verificare che l'installazione sia stata completata correttamente, avvia un contenitore Fedora di esempio. Questo comando acquisirà automaticamente tutte le immagini mancanti, eseguirà il contenitore e fornirà una sessione bash interattiva:

    sudo docker run -i -t fedora /bin/bash
    
  6. Per uscire dal contenitore, digita exit .

Cosa posso fare con Docker?

Docker consente agli utenti di impacchettare le proprie applicazioni e configurazioni in immagini leggere per la distribuzione come contenitori portatili.

Ciao mondo

Per eseguire un container Docker che stampa "hello world", esegui il comando seguente:

docker run ubuntu /bin/echo hello world

Dovrebbe restituire hello world .

Questo dice a Docker di fare una serie di cose:

  1. Se l'immagine (Ubuntu) non esiste già in locale, scaricala dall'indice Docker.
  2. Crea un nuovo contenitore con l'immagine di base di Ubuntu con un filesystem di lettura-scrittura e un'interfaccia di rete.
  3. Assegna un indirizzo IP al container; imposta NAT per inoltrare il traffico da e verso il container.
  4. Esegui il comando /bin/echo hello world e stampa l'output.
  5. Dopo aver completato il processo principale, il container uscirà.

Scrivere un Dockerfile per Nginx

Durante la creazione di un'immagine, Docker segue le istruzioni impostate in un file denominato Dockerfile . Nota che il file deve essere denominato Dockerfile e tutti i file o le cartelle richiesti da Dockerfile devono trovarsi nella stessa directory di Dockerfile stesso.

Eseguire un programma come echo in un contenitore Docker è piuttosto semplice. Tuttavia, per i programmi che fungono da server, come Nginx, dovrai assicurarti che il programma sia configurato per non autodemonizzarsi.

Questo è un esempio di Dockerfile per Nginx:

FROM        ubuntu:12.04
MAINTAINER  Jon Chen "[email protected]"

RUN         echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN         apt-get update
RUN         apt-get install -y nginx

RUN         echo "\ndaemon off;" >> /etc/nginx/nginx.conf
VOLUME      /etc/nginx/sites-enabled
VOLUME      /var/log/nginx

EXPOSE      80
CMD         ["nginx"]

La sintassi di Dockerfile è simile alla seguente:

# Comment
INSTRUCTION arguments

Docker esegue le istruzioni di Dockerfile dall'alto verso il basso in ordine. La prima istruzione deve essere FROM , che specifica l'immagine di base da cui desideri creare la tua nuova immagine:

FROM ubuntu:12.04

Questo imposta l'immagine ufficiale di Ubuntu 12.04 come immagine di base. Ti consigliamo inoltre di utilizzare l'istruzione MAINTAINER per definire l'autore dell'immagine:

MAINTAINER Jon Chen "[email protected]"

Successivamente, RUN l'istruzione eseguirà i comandi sull'immagine e eseguirà il commit dei risultati. Ogni commit viene salvato e utilizzato per l'istruzione successiva. Ad esempio, questo RUN la riga sostituisce il contenuto di /etc/apt/sources.list nell'immagine con deb http://archive.ubuntu.com/ubuntu precise main universe :

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list

La cosa importante da ricordare per programmi come Nginx è assicurarsi che il programma non venga eseguito come demone. Il comportamento predefinito di Nginx come demone consiste nel biforcare i processi di lavoro, quindi uscire dal processo master. Poiché Docker controlla solo il PID per il processo originale, il contenitore si arresterà prematuramente invece di funzionare in modo persistente. Per disabilitare la demonizzazione, aggiungi la direttiva di configurazione daemon off a /etc/nginx/nginx.conf :

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

Per esporre una porta all'interno del contenitore verso l'esterno del contenitore, utilizzare l'istruzione EXPOSE:

EXPOSE 80

L'istruzione CMD definisce il comando predefinito da eseguire all'avvio del contenitore. Nel nostro esempio, vogliamo eseguire Nginx:

CMD ["nginx"]

Per impostazione predefinita, i contenitori Docker non dispongono di una memoria permanente. Per condividere i dati tra contenitori, utilizza la funzione VOLUME:

VOLUME /etc/nginx/sites-enabled
VOLUME /var/log/nginx

Per montare una directory dall'host al contenitore, dovrai specificare la directory dell'host, la directory del contenitore corrispondente e le autorizzazioni della directory nella riga di comando quando esegui il contenitore:

-v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro].
If "host-dir" is missing, then docker creates a new volume.

Per creare questa immagine, esegui il comando seguente nella stessa directory del Dockerfile. Puoi anche specificare un repository e un tag per la tua immagine con -t repo/tag :

docker build -t bsdlp/nginx .

Esegui il comando seguente per aggiungere /etc/nginx/sites-enabled e /var/log/nginx come volumi dall'host al container, avvia il container come demone ed esponi la porta 80 dal container come porta 80 sull'host:

docker run -d -p 80:80 -v /etc/nginx/sites-enabled:/etc/nginx/sites-enabled -v /var/log/nginx:/var/log/nginx bsdlp/nginx

Maggiori informazioni

Si consiglia di consultare le seguenti risorse per ulteriori informazioni su questo argomento. Sebbene questi siano forniti nella speranza che possano essere utili, tieni presente che non possiamo garantire l'accuratezza o la tempestività dei materiali ospitati esternamente.

  • Guida introduttiva di Docker
  • Docker su GitHub
  • Indice immagine Docker ufficiale

Docker
  1. Come installare Docker su Ubuntu 16.04

  2. Come installare Docker su Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  3. Problemi Docker in Ubuntu 20.04?

  4. Installazione Docker (Ubuntu)

  5. Come installare Docker su Ubuntu 18.04?

Come installare Bitwarden su Ubuntu 20.04

Come installare Docker su Ubuntu 20.04, 18.04, 21.04

Installa Portainer con Docker su Ubuntu

Come installare Docker su Ubuntu 14.04

Come installare Docker Compose su Ubuntu

Come installare Docker su Ubuntu 18.04