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]



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

Trasferimento server to server (LINUX) della casella email

Oggi ho scoperto un tool veramente molto utile per il trasferimento server to servevr delle caselle email. Ed è acnhe veloce.
Si chiama imapsync [rif: https://imapsync.lamiral.info/ ]In pratica il tool da linea di comando si connette via imap al server email precedente e trasporta tutto al server di destinazioneLo uso quando faccio migrazioni di vps.Come funziona imapsync per sincronizzare e emailInternet è una risorsa. Da questo blog ho preso tutte le indicazioni https://www.jverdeyen.be/ubuntu/imapsync-on-ubuntu/Uso una distribuzione ubuntu 14.04. Non esiste un pacchetto precompilato da installare. imapsync si basa su perl. Ve lo ricordate? Mica è andato in disuso.Primo: si installano le dipendenze di imapsync per la migrazione mail server to serversudo apt-get install makepasswd rcs perl-doc libio-tee-perl git libmail-imapclient-perl libdigest-md5-file-perl libterm-readkey-perl libfile-copy-recursive-perl build-essential make automake libunicode-string-perl Secondo: si scarica i…

Creare un ambiente di sviluppo PHP SYMFONY MYSQL DOCKER

Preferisco Docker a Vagrant, più leggero. Ognuno naturalmente ha le sue preferenze.
Docker lo trovo più facile e veloce da configurare.
Non conosci Docker, vai sul sito e scoprirai un tool fantastico per "virtualizzare" le macchine, anche se non è il termine corretto.
Docker crea un contenitore all'interno del tu S.O. senza però virtualizzare l'infrastruttura hardware.
A me piace sviluppare con Symfony: W Symfony2!

[update: ho trovato questa serie di post nuovi per lo sviluppo con symfony su docker
https://blog.vandenbrand.org/2016/02/03/developing-symfony-applications-with-docker-series-part-i-getting-started/
]