User Tools

Site Tools


informatica:linux:docker:ejemplos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:linux:docker:ejemplos [2020/04/23 17:41] joseinformatica:linux:docker:ejemplos [2020/04/23 18:18] (current) jose
Line 1: Line 1:
 +====== Iniciación con docker ======
 +
 Instalamos docker en un servidor con IP 192.168.1.200 que llamaremos host Instalamos docker en un servidor con IP 192.168.1.200 que llamaremos host
  
-Internamente crea una red 172.17.0.0/16 donde el host tiene ip 172.17.0.1 y los contenedores que vamos creando 172.17.0.2172.17.0.3172.17.0.4.....+Internamente crea una red 172.17.0.0/16 donde el host tiene ip **172.17.0.1** y los contenedores que vamos creando:\\ 
 +172.17.0.2\\ 
 +172.17.0.3\\ 
 +172.17.0.4\\ 
 +.....
  
 {{:informatica:linux:docker:docker01.png|}} {{:informatica:linux:docker:docker01.png|}}
Line 13: Line 19:
 {{:informatica:linux:docker:docker02.png|}} {{:informatica:linux:docker:docker02.png|}}
  
-Para acceder desde fuera, podemos mapear el puerto al puerto que queramos, por ejemplo al 8080:+Para acceder desde fuera, podemos mapear el puerto al puerto que queramos, por ejemplo al 8080 con el parámetro p: 
 +<code> 
 +  -p <puerto externo>:<puerto interno> 
 +</code>
     docker run -ti -p 8080:80 nginx     docker run -ti -p 8080:80 nginx
  
 {{:informatica:linux:docker:docker03.png|}} {{:informatica:linux:docker:docker03.png|}}
  
-Ahora podemos acceder a nginx http://192.168.1.200+Ahora podemos acceder a nginx en: 
 +  http://192.168.1.200:8080 
  
 Podemos levantar mas servicios y mapear a puertos diferentes, nos creará varios contenedores. Podemos levantar mas servicios y mapear a puertos diferentes, nos creará varios contenedores.
Line 45: Line 56:
 Podemos hacer lo mismo con los ficheros de configuración, en este caso un fichero: Podemos hacer lo mismo con los ficheros de configuración, en este caso un fichero:
  
-  docker run -ti  /conf/nginx.conf:/etc/nginx/nginx.conf+  docker run -ti  /mi_conf/nginx.conf:/etc/nginx/nginx.conf
      
 Caso práctico, podemos levantar muchos servicios con un nginx por delante: Caso práctico, podemos levantar muchos servicios con un nginx por delante:
Line 53: Line 64:
     server {     server {
         listen       80;         listen       80;
-        server_name  miweb.com +        server_name  miweb.com;
-                     ;+
  
         location / {         location / {
Line 64: Line 74:
     server {     server {
         listen       80;         listen       80;
-        server_name  miwordpress.com +        server_name  miwordpress.com;
-                     ;+
  
         location / {         location / {
Line 75: Line 84:
     server {     server {
         listen       80;         listen       80;
-        server_name  minodejs.com +        server_name  minodejs.com;
-                     ;+
  
         location / {         location / {
Line 83: Line 91:
     }     }
  
-<code>+</code>
  
-Levantamos 3 dockers: +Levantamos 3 dockers con los servicios y un docker con nginx que estará por delante mapeando todos
-  docker run -ti -p 8081:80 nginx+  docker run -ti -p 8081:80 apache
   docker run -ti -p 8082:80 wordpress   docker run -ti -p 8082:80 wordpress
   docker run -ti -p 8083:3000 nodejs   docker run -ti -p 8083:3000 nodejs
 +  
 +  docker run -ti -p 80:80 nginx
 +{{:informatica:linux:docker:docker06.png|}}
 +  
 +Si quiero añadir un nuevo servicio, simplemnte tengo que modificar el fichero nginx.conf de mi servidor host y reiniciar el docker de nginx. Por ejemplo un servidor de redmine, levanto el docker con redmine, que por defecto es el puerto 3000, lo cambio al 8084 para tenerlo mas ordenado:
 +  docker run -ti -p 8084:3000 redmine
 +Añado la entrada al fichero nginx.conf que lo tengo en local:
 +<code>
 +    server {
 +        listen       80;
 +        server_name  miredmine.com;
  
 +        location / {
 +            proxy_pass http://192.168.1.200:8084;
 +        }
 +    }
 +</code>
 +
 +Y desde el servidor host reiniciar el docker de nginx:
 +
 +  docker restart nginx
 +
 +====== Mas ejemplos ======
 +Hay servicios mas complejos que tenemos que mirar en la documentación que puertos sirve, ficheros de configuración, variables.....
 +
 +Por ejemplo un controlador unfi:
 +  docker run   --name=unifi-controller   -e PUID=1000   -e PGID=1000   -e MEM_LIMIT=1024M `#optional`   -p 3478:3478/udp   -p 10001:10001/udp   -p 8080:8080   -p 8081:8081   -p 8443:8443   -p 8843:8843   -p 8880:8880   -p 6789:6789   -v ${PWD}/unifi-controller:/config   --restart unless-stopped   linuxserver/unifi-controller
 +  
 +Luego levantamos un servidor de radius mapeando el fichero con los usuarios en formato json:
 +  docker run --rm -ti -p 1812:1812/udp -p 1813:1813/udp -v usuariosfreeradius
 +  
 +Y tengo en pocos segundos un servidor unifi corriendo con una base de datos freeradius
informatica/linux/docker/ejemplos.1587663703.txt.gz · Last modified: 2020/04/23 17:41 by jose