Diferencia entre revisiones de «Usuario:ManuelRomero/docker»

De WikiEducator
Saltar a: navegación, buscar
(Instrucciones)
(Instrucciones)
Línea 51: Línea 51:
 
*En el FROM se puede especificar de forma opción el tag o digest (sirve para especificar la imagen, como por ejemplo la versión).
 
*En el FROM se puede especificar de forma opción el tag o digest (sirve para especificar la imagen, como por ejemplo la versión).
 
*Lo primero que tenemos que especificar es la imagen de la que partimos '''''instruccion FROM'''''
 
*Lo primero que tenemos que especificar es la imagen de la que partimos '''''instruccion FROM'''''
{{Ejemplos|
+
{{Ejemplo|
 
<source lang)=bash>
 
<source lang)=bash>
 
;imagen en base a ubuntu 14.04
 
;imagen en base a ubuntu 14.04
Línea 59: Línea 59:
 
;imagen en base a debian
 
;imagen en base a debian
 
FROM debian:stable
 
FROM debian:stable
 
</source>
 
<source lang)=bash>
 
 
;imagen en base a ubuntu 14.04 con node.js
 
FROM centos:6.4
 
  
 
</source>
 
</source>
Línea 76: Línea 70:
 
  MAINTAINER <name>
 
  MAINTAINER <name>
 
*Especifica el autor de la imagen y su correo
 
*Especifica el autor de la imagen y su correo
MAINTAINER Manuel Romero ManuelRomeroMiguel@gmail.com
+
MAINTAINER ManuelRomeroMiguel@gmail.com
  
 
==Rehaciendo todo==
 
==Rehaciendo todo==

Revisión de 05:40 9 ene 2016

Qué es docker



Icon define.gif

Definición

Docker es un proyecto Open-Source que automtiza el despliegue de aplicaciones dentro de un container de software


  • No es una máquina virtual.
  • Con docker se generan “containers” independientes para ejecutarse en una simple instancia de Linux, por lo que para tener diferentes configuraciones de entornos de desarrollo, no necestiamos tener diferentes máquinas virtuales. Un solo sistema operativo para n entornos o configuraciones diferentes de entornos de desarrollo basados en containers.

Ojo, qué no es docker

Qué si que hace docker

Instalando docker

  • Instalando la última version de docker (acutalmente 1.9 (Versión estable)
wget -qO- https://get.docker.com/ | sh
  • Visualizando la versión
 root@ubuntu1404:~# docker -v
                    Docker version 1.9.1, build a34a1d5
  • Instalando versión más reciente (experimental)
    • Añadiendo la clave pública/privada de docker
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
  • Añadimos el repositorio de docker en nuestro source.list
root@ubuntu1404:~# sh -c "echo deb https://get.docker.com/ubuntu docker main >> /etc/apt/sources.list.d/docker.list"

Crear un contenedor con volumenes a partir de una imagen

sudo docker run -t -i --name iternova5 -v /home/manolo/iternova:/local iternova-nagios-centreon-git /bin/bash

Dockfile

  • https://docs.docker.com/engine/reference/builder/
  • Sacado de esta página
  • Es un fichero de texto que me permite crear una imagen a partir de otra, y añadir una serie de comandos para instalar a esa imagen aplicaciones, servicios, librerías diversas con el objetivo de construirme una imagen para lanzar un contenedor personalizado a mis necesidades. Posteriormente puedo crear una imagen con ese contenedor.
Estructura del fichero
 # comentarios
 INSTRUCCIONES argumentos

En un fichero dockerfile tendremos dos tipos de líneas

  1. comentarios (líneas que empiezan por #)
  2. Sentencias líneas que tiene una instrucción con una serie de argumentos para ejecutarlas
    1. Por se recomienda poner las instrucciones en mayúsculas

Instrucciones

FROM
FROM <imagen>
FROM <imagen>:<tag>
FROM <imagen>@<digest>
  • Es la primera instrucción
  • Especifica la imagen base de la que parte la instalación que queremos hacer
  • En esta página puedes encontrar imágenes base de las cuales partir (hay miles)
  • En el FROM se puede especificar de forma opción el tag o digest (sirve para especificar la imagen, como por ejemplo la versión).
  • Lo primero que tenemos que especificar es la imagen de la que partimos instruccion FROM


Icon casestudy.gif

Ejemplo

Idioma no válido.

Necesita especificar un idioma como esto: <source lang="html4strict">...</source>

lenguajes soportados para sintaxis remarcada:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


;imagen en base a ubuntu 14.04
FROM ubuntu:14.04

Idioma no válido.

Necesita especificar un idioma como esto: <source lang="html4strict">...</source>

lenguajes soportados para sintaxis remarcada:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


;imagen en base a debian
FROM debian:stable



 # La primera instrucción debe ser FROM
 INSTRUCCIONES argumentos
MAINTAINER
MAINTAINER <name>
  • Especifica el autor de la imagen y su correo

MAINTAINER ManuelRomeroMiguel@gmail.com

Rehaciendo todo

  • Creo un contenedor de debian
sudo docker run -i -t debian:jessie /bin/bash
  • Instalo apache
apt-get update
apt-get install apache2
  • Información de docker
sudo docker info
  • Hacer un commit, para fijar una imagen

sudo docker container_id nombre_imagen_creado

  • Arrancar un contenedor a partir de un commit

Comandos para recordar

Ver los contenedores arrancadso

docker ps

Ver todos los contenedores del sistema

docker ps -a

Arrancar un contenedor parado

  • Primero localizar su nombre o su id (docker ps -a)
sudo docker start nombreContenedor
  • Ahora cargamos bash para interactuar con ese comando
sudo docker exec -t -i nombreContenedor /bin/bash

Referencias en la web

https://docs.docker.com/userguide/