Docker: come
"inscatolare" la propria
app?
JUG TAA - giugno 2015
Cristian Consonni e Mario A. Santini
Agenda
Teorica Pratica
Cos'è un LXC (Linux Container)
E’ un programma in user space che emula un
sistema operativo.
Sfrutta il kernel che lo ospita, ma tiene separati
i contesti.
Virtualizzazione vs container
Container
Virtualizzazione
Che cosa è Docker
Docker container
libs / tools
Your App
Docker daemon
Docker
Registry
Docker
client
Che cosa è il Dockerfile
●
FROM java:7-jre
●
●
ENV CATALINA_HOME /usr/local/tomcat
●
ENV PATH $CATALINA_HOME/bin:$PATH
●
RUN mkdir -p "$CATALINA_HOME"
●
WORKDIR $CATALINA_HOME
Che cosa è il Dockerfile 2
●
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
●
RUN gpg --keyserver pool.sks-keyservers.net --recv-keys 
●
05AB33110949707C93A279E3D3EFE6B686867BA6 
●
07E48665A34DCAFAE522E5E6266191C37C037D42 
●
...
●
●
ENV TOMCAT_MAJOR 6
●
ENV TOMCAT_VERSION 6.0.44
●
ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-
$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-
$TOMCAT_VERSION.tar.gz
Che cosa è il Dockerfile 3
●
RUN set -x 
●
&& curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz 
●
&& curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc 
●
&& gpg --verify tomcat.tar.gz.asc 
●
&& tar -xvf tomcat.tar.gz --strip-components=1 
●
&& rm bin/*.bat 
●
&& rm tomcat.tar.gz*
●
●
EXPOSE 8080
●
CMD ["catalina.sh", "run"]
DockerHub
Docker Hub: registry pubblico/privato
Docker registry: registry locale (aziendale)
Docker Trusted Registry: servizio a pagamento
DockerHub
Docker Hub: registry pubblico/privato
Docker registry: registry locale (aziendale)
Docker Trusted Registry: servizio a pagamento

Docker jug taa

  • 1.
    Docker: come "inscatolare" lapropria app? JUG TAA - giugno 2015 Cristian Consonni e Mario A. Santini
  • 2.
  • 3.
    Cos'è un LXC(Linux Container) E’ un programma in user space che emula un sistema operativo. Sfrutta il kernel che lo ospita, ma tiene separati i contesti.
  • 4.
  • 5.
    Che cosa èDocker Docker container libs / tools Your App Docker daemon Docker Registry Docker client
  • 6.
    Che cosa èil Dockerfile ● FROM java:7-jre ● ● ENV CATALINA_HOME /usr/local/tomcat ● ENV PATH $CATALINA_HOME/bin:$PATH ● RUN mkdir -p "$CATALINA_HOME" ● WORKDIR $CATALINA_HOME
  • 7.
    Che cosa èil Dockerfile 2 ● # see https://www.apache.org/dist/tomcat/tomcat-8/KEYS ● RUN gpg --keyserver pool.sks-keyservers.net --recv-keys ● 05AB33110949707C93A279E3D3EFE6B686867BA6 ● 07E48665A34DCAFAE522E5E6266191C37C037D42 ● ... ● ● ENV TOMCAT_MAJOR 6 ● ENV TOMCAT_VERSION 6.0.44 ● ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat- $TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat- $TOMCAT_VERSION.tar.gz
  • 8.
    Che cosa èil Dockerfile 3 ● RUN set -x ● && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz ● && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc ● && gpg --verify tomcat.tar.gz.asc ● && tar -xvf tomcat.tar.gz --strip-components=1 ● && rm bin/*.bat ● && rm tomcat.tar.gz* ● ● EXPOSE 8080 ● CMD ["catalina.sh", "run"]
  • 9.
    DockerHub Docker Hub: registrypubblico/privato Docker registry: registry locale (aziendale) Docker Trusted Registry: servizio a pagamento
  • 10.
    DockerHub Docker Hub: registrypubblico/privato Docker registry: registry locale (aziendale) Docker Trusted Registry: servizio a pagamento