Manual - DockerCompose Luna - Guiller

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Docker Compose

INSTALACIÓN DE DOCKER:
sudo curl -sSL https://get.docker.com | sh
sudo usermod -aG docker Nombre_usuario
INSTALACIÓN DE DOCKER COMPOSE:
sudo ​curl ​-L
"https://github.com/docker/compose/releases/download/1.24.0/docker-compose-​$(
uname ​-s)​-​$(​uname ​-m)​"​ ​-o​ /usr/local/bin/docker-compose

Esto es para darle permisos de ejecución:


sudo ​chmod +x /usr/local/bin/docker-compose

PRIMEROS PASOS EN COMPOSE:


Creamos un directorio :
mkdir docker-compose
vamos al directorio:
cd docker-compose/
Creamos un archivo YML:
nano docker-compose.yml
Diferencia entre un contenedor creado con docker y docker-compose:
Con Docker:
docker run -d --name nginx -p 80:80 nginx
Con docker-compose:
version: "3"
services:
web:
container_name: nginx1
ports:
- "8080:80"
image: nginx

Detiene los contenedores y elimina los contenedores, las redes, los volúmenes y las
imágenes creadas por up.
docker-compose down
Comandos para detener y iniciar un contenedor:
docker-compose start
docker-compose stop

VARIABLES DE ENTORNO EN COMPOSE:


Crear un archivo YML:
version: "3"
services:
db:
image: mysql:5.7
container_name: mysql
ports:
- "3306:3306"
environment:
- ​"MYSQL_ROOT_PASSWORD=12345678"
Creamos el contenedor :
docker-compose up -d
Para ingresar a mysql escribimos:
1. docker exec -ti mysql bash
2. env
3. mysql -u root -p12345678

Otra manera de hacerlo :


Eliminamos nuestro contenedor mysql:
docker-compose down
Creamos un archivo env con la variable de la contraseña:
echo "MYSQL_ROOT_PASSWORD=12345678" > common.env
Revisamos si se a creado:
cat common.env
Editamos el archivo YML:
version: "3"
services:
db:
image: mysql:5.7
container_name: mysql
ports:
- "3306:3306"
env_file: common.env
Editamos el archivo env para agregar más variables:
vi common.env
y editamos:
MYSQL_ROOT_PASSWORD=12345678
hola=hola12
Creamos el contenedor :
docker-compose up -d
Con esto tenemos dos opciones para definir nuestras variable uno en una lista y otro en un
archivo de texto para posteriormente utilizarlo.

VOLÚMENES EN COMPOSE:
Vamos a crear volúmenes nombrados y de house:
volúmen nombrado:
version: "3"
services:
web:
container_name: nginx1
ports:
- "8080:80"
volumes:
- "vol2:/usr/share/nginx/html"
image: nginx
volumes:
vol2:
Creamos el contenedor :
docker-compose up -d
Validar si creamos el volumen:e:
docker info | grep -i root
Nos vamos al directorio que muestra en mi caso es este:
cd /var/lib/docker
Luego a la sección de volúmenes:
cd volumes/
Vemos si se a creado nuestro volumen:
ll
Nos vamos al directorio del volumen y a data:
cd docker-compose_vol2
cd _data/
Modificamos nuestro index:
vi index.html
lo editamos poniendo una carita feliz :) y guardamos con :wq

Crear un volumen de house:


Descargamos una página web:
wget ​https://github.com/BlackrockDigital/startbootstrap-freelancer/archive/gh-pages.zip
Instalamos esta herramienta para descomprimir archivos :
apt-get -y install unzip
Descomprimimos :
unzip gh-pages.zip

Editamos nuestro archivo YML:


version: "3"
services:
web:
container_name: nginx2
ports:
- "8081:80"
volumes:
-
"/home/iluna/docker-compose/startbootstrap-freelancer-gh-pages/:/usr/share/nginx/html"
image: nginx

Creamos el contenedor :
docker-compose up -d

REDES EN COMPOSE:
Creamos nuestro archivo YML:

version: "3"
services:
web:
container_name: nginx2
ports:
- "8081:80"
image: httpd
networks:
- net-test
web2:
container_name: nginx3
ports:
- "8082:80"
image: httpd
networks:
- net-test
networks:
net-test:

Creamos el contenedor :
docker-compose up -d
Hacemos un ping entre nuestros contenedores:
docker exec -ti nginx3 bash -c "ping nginx2"
Si muestra un error instalar ping en los contenedores :
1. docker exec -ti nginx3 bash
2. apt-get update
3. apt-get install iputils-ping
4. ping nginx2
para salir del ping presionamos ctrl +c

CONSTRUIR IMÁGENES EN COMPOSE:


Creamos una carpeta build:
mkdir build
cd build/
Creamos un archivo YML:
vi docker-compose.yml
Copiamos​:
version: "3"
services:
web:
container_name: web
image: web-test
build: .
Creamos un Dockerfile:
vi Dockerfile
Copiamos​:
FROM centos
RUN mkdir /opt/test
Ejecutamos la imagen con :
docker-compose build
verificamos nuestra imagen:
docker images

Si tenemos Dockerfile con otro nombre:


Renombramos nuestro Dockerfile:
mv Dockerfile DemoWeb
Editamos el archivo YML:
version: "3"
services:
web:
container_name: web
image: web-test
build:
context: .
dockerfile: DemoWeb
Ejecutamos la imagen con :
docker-compose build

También podría gustarte