Docker

Instalación

Linux (Edge): curl -sSL https://get.docker.com/ | sh

Instalación Docker Machine

https://docs.docker.com/machine/install-machine/

Instalación Docker Compose

https://docs.docker.com/compose/install/

Comandos

docker info

docker version

Creating and Using Containers Like a Boss

Check Our Docker Install and Config

Ver versión de docker

docker version

Información de la instalación

docker info

docker

Ayuda de un subcomando (subcomando container)

docker container --help

Listar contenedores activos

docker container ls

Listar todos los contenedores

docker container ls -a

Iniciar un contenedor nginx

docker container run --publish  nginx 80:80

Iniciar un contenedor nginx desacoplado

docker container run --publish  nginx --detach 80:80

Iniciar un contenedor nginx con nombre webhost

docker container run --publish 80:80 --detach --name webhost nginx

Ver los procesos en docker

docker ps

Ver los procesos dentro de un contenedor

docker container top webhost

Ver los logs de una instancia desacoplada

docker container logs webhost

Detener una instancia

docker stop o <3 primeros caracteres de ID>

Detener varias instancias

docker stop

Eliminar varios contenedores

docker container rm

Forzar el eliminado

docker container rm -f

Listar ayuda de comandos para stats

docker container stats --help

Ver detalle de consumo de recursos de los contenedores

docker container stats

Ver la configuración inicial de un contenedor

docker container inspec |

Abrir una terminal interactiva después de crear contenedor

docker container run -it nginx nginx bash

Iniciar un contenedor y abrir una terminal interactiva

docker container start -ia ubuntu

Procesos en docker en la máquina HOST (Linux Only)

docker ps

Iniciar instancia de mongo detached

docker run --name mongo -d mongo

Listas los procesos corriendo dentro de un contenedor específico

docker top mongo

Retorna logs de inicio del contenedor

docker container inspect mysql

Ver detalle de consumo de recursos de los contenedores

docker container stats

Más comandos posibles para stats

docker container stats --help

Abrir una shell dentro del contenedor

docker container run -it nginx

Iniciar un contenedor y abrir una shell

docker container start -ai [bash]

Abrir una shell en un contenedor iniciado

docker container exec -it <programa{ejm:bash}>

Ver la ip de un contenedor

docker container inspect --format ‘{{ .NetworkSettings.IPAddress }}’

Container VS. VM: It's Just a Process

Detener un contenedor

docker stop mongo

Mostrar procesos de un contenedor

docker top mongo

Iniciar un contenedor

docker start mongo

What's Going On In Containers: CLI Process Monitoring

docker container run -d --name nginx nginx

docker container run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=true mysql

docker container ls

docker container top mysql

docker container top nginx

Getting a Shell Inside Containers: No Need for SSH

docker container run -help

docker container run -it --name proxy nginx bash

docker container ls

docker container ls -a

docker container run -it --name ubuntu ubuntu

docker container ls

docker container ls -a

docker container start --help

docker container start -ai ubuntu

docker container exec --help

docker container exec -it mysql bash

docker container ls

docker pull alpine

docker image ls

docker container run -it alpine bash

docker container run -it alpine sh

Docker Networks: Concepts for Private and Public Comms in Containers

docker container run -p 80:80 --name webhost -d nginx

docker container port webhost

docker container inspect --format '{{ .NetworkSettings.IPAddress }}' webhost

Docker Networks: CLI Management of Virtual Networks

Listas las interfaces de red

docker network ls

Ver detalles de la red bridge (Defualt net NET)

docker network inspect bridge

Crea una interfaz de red virtual

docker network create my_app_net

Muestra opciones para la creación de un red

docker network create --help

Podemos especificar la opcion nework cuando creamos un contenedor

docker container run -d --name new_nginx --network my_app_net nginx

Ahora podemos observar el contenedor perteneciente a esta red

docker network inspect my_app_net

POdemos conectar un contenedor a una red

docker network connect

Podemos ver que el contenedor está en 2 networks

docker container inspect TAB COMPLETION

Podemos desconectar un contendor de una red

docker container disconnect TAB COMPLETION

Docker Networks: DNS and How Containers Find Each Other

docker network inspect TAB COMPLETION

docker container run -d --name my_nginx --network my_app_net nginx

docker container inspect TAB COMPLETION

docker container exec -it my_nginx ping new_nginx

docker container exec -it new_nginx ping my_nginx

docker network ls

docker container create --help

Assignment Answers: Using Containers for CLI Testing

docker container run --rm -it centos:7 bash

docker ps -a

docker container run --rm -it ubuntu:14.04 bash

docker ps -a

Assignment Answers: DNS Round Robin Testing

docker network create dude

docker container run -d --net dude --net-alias search elasticsearch:2

docker container ls

docker container run --rm -- net dude alpine nslookup search

docker container run --rm --net dude centos curl -s search:9200

docker container ls

docker container rm -f TAB COMPLETION

Kubernetes

from local docker image

kubectl run discovery –image=myproject/myimage –image-pull-policy=Never –port=8761

kubeadm reset

kubeadm init

Centos 7 Kubernetes Kluster

https://www.centlinux.com/2019/04/install-kubernetes-cluster-docker-ce-centos-7.html

Observación el cgroup de docker debe ser “native.cgroupdriver=cgroupfs”

© 2022 Jorge Luis Parihuamán Arivilca