Passa ai contenuti principali

Docker in Ubuntu

Docker permette di creare istanze virtuali di macchie linux senza utilizzare un livello di astrazione come una macchia virtuale quale Virtualbox ma contenendo la macchina all'interno di un perimetro dentro il so condividendo il so stesso
La grande novità di Docker che non appesantisce la macchina

Installare Docker in Ubuntu

In Ubuntu 14.04 ecco i comandi per l'installazione
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
Per tutte le necessità questa è la pagina ufficiale per l'installazione di docker su ubuntu

Test installazione Docker

L'obiettivo è di avviare un semplice  comando Hello World all'interno di una macchina virtuale contenuta in Docker

 sudo docker run ubuntu:14.04 /bin/echo 'Hello world'
Questo semplice comando dice a Docker di avviare una macchina virtuale tipo Ubuntu 14.04 e stampare la stringa "Hello World"
Ben poco ma almeno se funziona allora l'installazione ha avuto successo

Ora veniamo a qualcosa di più concreto.

Installazione din un'immagine Docker

Io uso Ubuntu 14.04. Voglio avviare ora creare una macchina virtuale dove installerò WordPress

Prima di iniziare un paio di comandi di Docker per lavorarci
  • docker ps - lista containers.
  • docker logs - mostra lo standard output dei containers.
  • docker stop - ferma un container
  • docker run - avvia un container
  • docker version - versione di docker
  • docker  - visualizza tutti i comandi disponibili
  • docker images  - immagini disponibili
L'installazione di un'immagine docker parte da un Hub che è https://hub.docker.com/. Con il comando docker images è possibile visualizzare tutte le immagini disponibili attualmente presenti nella macchina. Se un'immagine non è trovata il locale il sistema prova a scaricarla dall'hub, quindi conviene partire da un'immagine base. Potete cercare quella che fa al caso vostro su https://registry.hub.docker.com/

Per il nostro obiettivo è possibile utilizzare quest'immagine https://registry.hub.docker.com/u/tutum/wordpress/ 
Quest'immagine rimane in ascolto della porta 80 e include anche un server MySql.

L'installazione è molto semplice: docker run -d -p 80:80 tutum/wordpress

Ora Docker non fa altro che scaricare dalla rete l'immagine e installarla il locale in un container apposito
Pulling repository tutum/wordpress
  13e1304a44df: Pulling dependent layers 
  511136ea3c5a: Download complete 
  8a1d8569bf87: Download complete 
  2be841034d7d: Download complete 
  99e40d806d07: Download complete 
  ef83896b7fb9: Download complete 
  2a09d8f44042: Download complete 
  2c5a50ae84cd: Downloading [==========>                             ]  16.9 MB/79.63 MB 1m13s

Se esegui docker ps si vede che il container è in avviato e in ascolto

CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                          NAMES
d54404f99dc3        tutum/wordpress:latest   /run.sh             15 seconds ago      Up 14 seconds       0.0.0.0:80->80/tcp, 3306/tcp   ecstatic_morse      
Ora avviamo il browser è richiama http://localhost: comparirà la videata di installazione
Se però stoppate l'immagine docker stop d54404f99dc3  e la riavviamo, wordpress sarà da reinstallare

Docker non memorizza le modifiche avvenute all'interno dell'immagine come ad esempio l'installazione in db di wordpress, se non glielo si comunica con un commit

Quindi una macchina in docker non è persistente se non lo si dice a docker.

[work in progress]



Commenti

Post popolari in questo blog

install language on osTicket

this simple guide aims you to install and configure your language on osTicket i written this guide based on forum post http://osticket.com/forum/discussion/76252/installing-language-pack

Ubuntu: La propria installazione di python è danneggiata. Correggere il collegamento simbolico «/usr/bin/python».

Questa è un problema, soprattutto se si vuole aggiornare la distribuzione.+ Dì la verità: hai pacioccato con le versioni di python vero? Volevi usare la 3.5 e non 2.7 e così hai aggiunto alternatives o manipolato il symlink. No? io si. Così in fase di aggiornamento mi sono bloccato. Allora per risolverlo ecco la soluzione: elimina tuttle le eventuali alternative : sudo update-alternatives –remove-all python crea il symlink alla 2.7 sudo ln -s /usr/bin/python3.5 /usr/bin/python aggiorna i permessi: sudo chmod 7777 /usr/bin/python Ora funziona tutto. La soluzione l’ho scovata qui: https://askubuntu.com/questions/448926/do-release-upgrade-python-install-is-corrupted