Usuario:ManuelRomero/docker

De WikiEducator
Saltar a: navegación, buscar

Acciones básicas

Arranca un terminal de contenedor nuevo para probar algo a partir de la imagen ubuntu:14.04
 sudo docker run --name dwes_cordoba -ti ubuntu:14.04
  • Con esto ya tengo un contenedor creado, llamado dwes_cordoba para probar cosas
Una vez que cierre el contenedor lo puedo volver a abrir cuando quiera
{22:56}~ ➭ sudo docker start  dwes_cordoba           
dwes_cordoba
{22:56}~ ➭ sudo docker exec -ti dwes_cordoba /bin/bash 
root@496b9ba15066:/#
Modificando variables de entorno tipo PATH
acceder al fichero /etc/enviroment


Creando una imagen a partir de un fichero dockerfile ubicado en el directorio actual
sudo docker build -t iternova/web .
  • Accion
Crea una imagen llamada iternova de tag web con el contenido del dockerfile que hay en el mismo directorio
  • Restricciones
El nombre/tag no puede tener mayúsculas
Poniendo un volumen
El volumen se especifica para cada contenedor
 sudo docker run --name iternova -v /var/www/iternova:/var/www -dti iternova/web 
descripción
arranca un contenedor llamado iternova 
creando un volumen /var/www/iternova en el contenedor con /var/www que está en el host 

-dti (background terminal e interactivo) de una imagen llamada iternova

Arrancando acciones (servicios activos) en el contenedor

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

Ejecutar docker sin sudo

https://datafull.co/p/como-puedo-usar-docker-sin-sudo https://docs.docker.com/engine/security/security/ Plantilla:DockerFila

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
systemctl daemon-reload

Copiar ficheros a un contenedor

Tener un contenedor como servicio

  • Supongo que tengo un contenedor llamado laravel (es un ejemplo) y quiero que se arranque como un servicio en ubuntu
  • Ir al directorio donde se ubican los servicios
/etc/systemd/system/
  • En ese directorio creo un fichero llamado laravel.service
[Unit]
Description=web Apache mysql and laravel container
After=docker.service
Wants=network-online.target docker.socket
Requires=docker.socket
 
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a laravel
ExecStartPost=/usr/bin/docker exec laravel service mysql restart 
ExecStartPost=/usr/bin/docker exec laravel service apache2 restart 
ExecStop=/usr/bin/docker stop -t 10 web
 
[Install]
WantedBy=multi-user.target
  • Si quiero que se arranque siempre cuando arranque el sistema


  • Reiniciar systemctl
systemctl daemon-reload

Referencias en la web