Skip to content

Instantly share code, notes, and snippets.

@alphanetEX
Last active November 13, 2019 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alphanetEX/19f543b861a4fba497ceb8e7d6f80879 to your computer and use it in GitHub Desktop.
Save alphanetEX/19f543b861a4fba497ceb8e7d6f80879 to your computer and use it in GitHub Desktop.
dockerfile_classmate
https://store.docker.com/profiles/arm32v7 #organizacion oficial para producto armv7 de 32bits
#Arrancando un contenedor con un volumen de manera sincrona
docker container run --name ejemplo-contenedor -v /home/odroid/ejemplo/datos:/ejemplo -it armhf/ubuntu:17.04 /bin/bash
sintaxis
docker container run --name ejemplo-contenedor
#iniciando un contenedor y asignandole como nombre ejemplo contenedor
-v
# la abreviatura v es para identificar que se esta montando un volumen de datos
/home/odroid/ejemplo/datos
#esta es la ubicacion del directorio de la maquina local que se estara utilizando como volumen
:/ejemplo
#despues de los dos puntos se especifica en que lugar dentro de la estructura de los ficheros del contenedor va a ser montado este
#volumen de datos
-it
# nos permite iniciar el contenedor de forma interactiva trabajando desde la consola
armhf/ubuntu:17.04
# se especifica que imagen se va a utilizar de las ya descargadas por docker
/bin/bash
#se define el programa que se estara utilizando de manera interactiva con dicho contenedor
-----------------------------------------Procedimientos-------------------------------------------------------------------------
crear un archivo Dockerfile y adjuntar la siguiente sintaxis
FROM armhf/ubuntu:17.04
LABEL Description="XAS Dynamics debian dev" Autor="Alphanet-EX" Vers$
COPY datos /ejemplo
ENTRYPOINT cat /ejemplo/texto
Explicacion del archivo Dockerfile+++++++++++++++++++++++++++++++++++++++++
FROM armhf/ubuntu:17.04
#se descarga la imagen de ubuntu con el tag 17.04
LABEL Description="XAS Dynamics debian dev" Autor="Alphanet-EX" Version="v0.0.1"
#se anexan metadatos ya sea informacion sobre la imagen y derivados
RUN ~/generator.bash
#se ejecutara este comando internamente en la consola
COPY datos /ejemplo
# se copiaran los archivos que esten en la carpeta datos y se pegaran en una carpeta dentro del docker llamada ejemplo
ENTRYPOINT cat /ejemplo/texto
# se espesifica que cada ves que se inicie la imagen de docker que se imprima la informacion del archivo texto alojado en docker
EXPOSE 3000
#expone el puerto
WORKDIR /usr/src
#este es un CD de linea de comandos
CMD["node", "index.js"]
#cual es el comando por defecto que correra el contenedor y que archivo se tiene que ejecutar
CMD ["npx", "nodemon", "index.js"]
*************************************como utilizar los contenedores comno si fueran volumenes de datos**************************
docker container run --name dkr-datos -v /datos arm32v7/busybox
sintaxis
docker container run --name dkr-datos
#se crea un contenedor con el nombre drk-datos
-v /datos
#en el cual se crea un volumen en la raiz dentro del docker dkr-datos
arm32v7/busybox
#utilizando la imagen busybox de docker store
#ya se tiene creado el contenedor que almacenara el volumen de datos-------------------------
#ahora es necesario crear el contenedor que seria nuestra aplicacion que va a utilizar comno volumen de datos dicho contenedor
#que se ha creado
-----------------------------------------------CREANDO EL CONTENEDOR DE LA APLICACION----------------------------------------
docker container run --name app1 --volumes-from dkr-datos -it armhf/ubuntu:17.04 /bin/bash
sintaxis
docker container run --name app1
#se iniciar un contenedor con el nombre app1
--volumes-from datos
#con este parametro vamos a indicarle al contenedor que estamos iniciando que utilize otro contenedor llamado dkr-datos
-it armhf/ubuntu:17.04 /bin/bash
#se iniciara de manera interactiva con el programa que se estara utilizando
#luego se iniciara una terminar y con el comando ls verificaran que saldra la carpeta llamada datos, misma que esta enlazada
#con el contenedor dkr-datos de manera sincrona
--------------------------------------------creando una tercera aplicacion----------------------------------------------------
docker container run --name aplicacion2 --volumes-from dkr-datos -it armhf/ubuntu:17.04 /bin/bash
#se crea una segunda aplicacion
#se analiza con el comando ls la carpeta datos
#cd entra a la carpeta datos con el comando cd datos/
#crea un archivo con el comando touch xxx-data y verifica la primera aplicacion
----------------------------------------------SALVAR INFORMACION DE LOS VOLUMENES DE DATOS-------------------------------------
docker container run --rm --volumes-from dkr-datos -v $(pwd):/backup armhf/ubuntu:17.04 tar cvf /backup/backup.tar /datos
sintaxis
docker container run
#iniciamos un nuevo contenedor
-volumes-from dkr-datos
#asociamos el volumen del del contenedoe dkr-datos
tar cvf /backup/backup.tar /datos
#la informacion se guardara en una carpeta backup/backup.tar de la carpeta de origen /datos dentro de un fichero comprimido
$(pwd):/backup
#hemos montado un volumen desde nuestro directorio hasta la maquina locar al contenedor que estamos creando
--rm
#una vez que nuestro contenedor termine dicha operacion, ya no se va a utilizar, entoces se eliminara.
------------------------------------------------publicacion de servicios de manera aleatoria ---------------------------------------------------------
docker container run --rm -d --publish-all ebspace/armhf-apache-php
sintaxis
--rm
#se eliminara el contenedor cuando se detenga
--publish-all
#asignar de maneara aleatoria los puertos de la maquina local
ebspace/armhf-apache-php
#imagen a iniciar
------------------------------------------------publicacion se servicios de manera estatica--------------------------------------
docker container run --rm -d -p 8080:80 ebspace/armhf-apache-php //publicacion de un servicio de manera estatica
--------------------------------------------------creacion de contenedor con maria db-------------------------------------------
docker container run --name bd-servidor -it -e MYSQL_ROOT_PASSWORD='your password' -d bittnerd/mariadb-armhf /bin/bash
---------------------------------------------------Conectar contenedores---------------------------------------------------------
docker container run --link bd-servidor:mysql -it -d -p 80:80 -p 443:443 alphanet/portafolio_lamp:version-0.0.1 /bin/bash
sintaxis
docker container run
#se inicia un contenedor
--link bd-servidor:mysql
#se enlaza con el contenedor db-servidor con el servicio mysql
-it -d -p 80:80 -p 443:443 alphanet/portafolio_lamp:version-0.0.1
#se estableble que habra una coneccion de forma interactiva con los puertos 80 y 443 activos para la imagen que se utilizara de referencia
----new sector network
#creando red interna en docker
docker network create --attachable darpanet
#conectando un contenedor con docker
docker network connect darpanet auth01-pr
#inspeccionando la red darpanet
docker network inspect darpanet
#eliminando red de docker
docker network rm darpanet
#arrancando un contenedor con varialble de entorno y volumen
docker run --name nodeapx -p 8080:3000 --env MONGO_URL=mongodb://auth01-pr:27017/auth01 -d -v $(pwd):/usr/src/ nodeapp
#--env: flag de variable de entorno
# MONGO_URL=mongodb://auth01-pr:27017/auth01
#[variable] ://[container]:[port]/[port]
docker-compose build
docker-compose up
docker-compose up -d
docker compose down
docker-compose scale app=4
docker-compose logs -f app
docker-compose logs db
docker rm -f $(docker ps -aq)
docker network inspect darpanet
//Dockerfile
docker build .
docker build -t mgnd-test .
//execute with name
docker inspect -f '{{ json .Mounts }}' md-test
docker volume ls
docker volume prune //droping volumes
docker volume create dbdata
docker run --name mg-test --mount dbdata,dst=/data/db mongo
docker run -d --name mg-test --mount dbdata,dst=/data/db mongo
#variable
docker container logs -f '6337800a3686'
docker logs -d mg-test
docker logs -f mg-test
docker run --name mg-test -d -v echo $darpa:/data/db mongo -p 27017:27017 -q mongo
#
docker run --name nodeapx -p 8080:3000 --env MONGO_URL=mongodb://auth01-pr:27017/auth01 -d -v $(pwd):/usr/src/ nodeapp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment