Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Següent revisió | Revisió prèvia | ||
| info:cursos:pue:devops2022:s1 [09/02/2022 09:14] – creat mate | info:cursos:pue:devops2022:s1 [09/03/2022 09:57] (actual) – [DevOps Sesión 1 (2022-02-09)] mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | = DevOps Sesión | + | = DevOps Sesión |
| == Documentación relacionada | == Documentación relacionada | ||
| - | == Clase | + | * montar entorno docker con Vagrant: |
| - | == TODO | + | * Entorno docker en PUE.txt |
| - | <callout type="info" | + | * **git clone https:// |
| + | * Entorno de mv de docker-local.txt | ||
| + | == 1-Despliegue de Aplicaciones Docker | ||
| + | * Seminario Herramientas Devops entornos de desarrollo en local, para programadores con Docker y Vagrant .pdf | ||
| + | * 1-Curso Alumnos Docker.pdf | ||
| + | * pag 55 | ||
| + | * pag 66 | ||
| + | * Clase1-docker.txt | ||
| + | * https:// | ||
| + | * **/ | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * pag 88 - 94 : laboratorio 3 | ||
| + | * docker attach -> [[https:// | ||
| + | * '' | ||
| + | * docker update -> establecer límites contenedor en ejecución | ||
| + | * navegar entre capas imagen docker: [[https:// | ||
| + | |||
| + | == extras | ||
| + | <code>## | ||
| + | | ||
| + | |||
| + | ## | ||
| + | | ||
| + | |||
| + | |||
| + | | ||
| + | | ||
| + | [root@docker1 docker]# systemctl edit --full docker.service | ||
| + | |||
| + | # | ||
| + | |||
| + | |||
| + | sytemctl daemon-reload | ||
| + | systemctl restart docker | ||
| + | systemctl status docker | ||
| + | |||
| + | |||
| + | ## | ||
| + | |||
| + | cat / | ||
| + | { | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | ] , | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | sytemctl daemon-reload | ||
| + | systemctl restart docker | ||
| + | systemctl status docker | ||
| + | |||
| + | |||
| + | |||
| + | / | ||
| + | [Service] | ||
| + | Environment="HTTPS_PROXY=https:// | ||
| + | |||
| + | sytemctl daemon-reload | ||
| + | systemctl restart docker | ||
| + | systemctl status docker | ||
| + | |||
| + | |||
| + | | ||
| + | [root@docker1 docker]# systemctl edit --full docker.service | ||
| + | |||
| + | [Service] | ||
| + | Environment=http_proxy=http:// | ||
| + | |||
| + | |||
| + | sytemctl daemon-reload | ||
| + | systemctl restart docker | ||
| + | systemctl status docker | ||
| + | |||
| + | |||
| + | El archivo de configuración del demonio daemon.json, | ||
| + | • / | ||
| + | • %programdata%\docker\config\daemon.json en sistemas Windows | ||
| + | -------------------------------------------------------------------------------------------------------------------------------- | ||
| + | -------------------------------------------------------------------------------------------------------------------------------- | ||
| + | ## | ||
| + | |||
| + | El cliente almacenará su configuración en el directorio de inicio de los usuarios en $HOME/ | ||
| + | Hay un archivo de configuración donde el cliente Docker buscará sus configuraciones | ||
| + | ( $HOME/ | ||
| + | o %USERPROFILE%/ | ||
| + | |||
| + | Si necesitamos pasar la configuración del proxy a los contenedores al inicio, configuraremos la proxies clave .docker/ | ||
| + | | ||
| + | |||
| + | " | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | ## Estas configuraciones se pueden agregar como argumentos al iniciar el contenedor Docker, de la siguiente manera docker run: | ||
| + | --env HTTP_PROXY=" | ||
| + | --env HTTPS_PROXY=" | ||
| + | --env NO_PROXY=" | ||
| + | ------------------------------------------------------------------------------------------------------------------ | ||
| + | ------------------------------------------------------------------------------------------------------------------ | ||
| + | #### | ||
| + | ## | ||
| + | |||
| + | Editar en docker1 y docker2: | ||
| + | vi / | ||
| + | 192.168.33.10 docker1.curso.local docker1 | ||
| + | 192.168.33.11 docker2.curso.local docker2 | ||
| + | |||
| + | ##Todo en la mv docker1: | ||
| + | mkdir /ca | ||
| + | cd /ca | ||
| + | |||
| + | ## | ||
| + | | ||
| + | echo $HOST | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | openssl genrsa -out server-key.pem 4096 | ||
| + | openssl req -subj "/ | ||
| + | echo subjectAltName = DNS: | ||
| + | echo extendedKeyUsage = serverAuth >> extfile.cnf | ||
| + | openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem | ||
| + | |||
| + | |||
| + | $ chmod -v 0400 ca-key.pem key.pem server-key.pem | ||
| + | $ chmod -v 0444 ca.pem server-cert.pem cert.pem | ||
| + | |||
| + | |||
| + | vi / | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | ] , | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | ###Editamos el servicio de docker y comentamos la linea ExecStart ahora añadimos la linea ExecStart=/ | ||
| + | export EDITOR=vi | ||
| + | systemctl edit --full docker.service | ||
| + | |||
| + | # / | ||
| + | # | ||
| + | ExecStart=/ | ||
| + | |||
| + | |||
| + | ##Ahora podemos arrancar nuestro docker engine en el servidor docker1: | ||
| + | |||
| + | systemctl daemon-reload | ||
| + | systemctl restart docker | ||
| + | systemctl status docker | ||
| + | |||
| + | netstat -tan |grep -i 2376 | ||
| + | tcp6 | ||
| + | |||
| + | --------------------------------------------------------------------------------------------------------------------------- | ||
| + | ##En la mv docker1 creamos los certificados para cliente: | ||
| + | |||
| + | #Con la misma CA, cree una clave firmada por la CA del cliente, especificando que esta clave se utilizará para la autenticación del cliente: $ openssl genrsa -out key.pem 4096 | ||
| + | |||
| + | cd /ca | ||
| + | openssl genrsa -out key.pem 4096 | ||
| + | openssl req -subj '/ | ||
| + | echo extendedKeyUsage = clientAuth > extfile-client.cnf | ||
| + | openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem | ||
| + | |||
| + | ##En la mv docker2: | ||
| + | mkdir / | ||
| + | |||
| + | |||
| + | ##Moveremos los certificados de cliente generados al host del cliente | ||
| + | Tendremos que copia desde la mv docker1 en /ca al directorio de la mv docker2 / | ||
| + | ca.pem | ||
| + | cert.pem | ||
| + | key.pem | ||
| + | |||
| + | ##Desde docker1: | ||
| + | cd /ca | ||
| + | scp ca.pem 192.168.33.11:/ | ||
| + | scp cert.pem 192.168.33.11:/ | ||
| + | scp key.pem 192.168.33.11:/ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ##En la mv docker2 | ||
| + | |||
| + | |||
| + | cd / | ||
| + | ls | ||
| + | ca.pem | ||
| + | cert.pem | ||
| + | key.pem | ||
| + | |||
| + | ##Ahora podemos comprobar el funcionamineto desde el cliente docker2 en el directorio /ca-cliente donde estan los certs del cliente: | ||
| + | ##Con este comando nos tiene que fallar: | ||
| + | |||
| + | docker | ||
| + | |||
| + | [root@docker2 ca-cliente]# | ||
| + | [root@docker2 ca-cliente]# | ||
| + | [root@docker2 ca-cliente]# | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------------------------------------------------------------ | ||
| + | https:// | ||
| + | |||
| + | ##No es necesrio para el laboratorio: | ||
| + | |||
| + | ## | ||
| + | |||
| + | vi / | ||
| + | { | ||
| + | " | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ##Por defecto en el cliente busca los certificados: | ||
| + | / | ||
| + | ca.pem | ||
| + | cert.pem | ||
| + | key.pem | ||
| + | |||
| + | |||
| + | docker -H=docker1.curso.local: | ||
| + | |||
| + | |||
| + | ##Este comportamiento lo podemos cambiar: | ||
| + | |||
| + | export DOCKER_CERT_PATH=/ | ||
| + | export DOCKER_TLS_VERIFY=" | ||
| + | |||
| + | docker -H=docker1.curso.local: | ||
| + | |||
| + | ###Para dejarlo fijo para el usuario root: | ||
| + | vi / | ||
| + | export DOCKER_CERT_PATH=/ | ||
| + | export DOCKER_TLS_VERIFY=" | ||
| + | |||
| + | |||
| + | --------------------------------------------------------------------------------------------------------------------------------------------- | ||
| + | ---------------------------------------------------------------------------------------------------------------------------- | ||
| + | ##Para modo depuracion sin utulizar systemd: | ||
| + | |||
| + | Inicie el demonio de Docker con TLS habilitado y use argumentos para la CA, el certificado del servidor y la clave firmada por la CA. | ||
| + | Esta vez, el demonio de Docker que usa TLS se ejecutará en el puerto 2376 (que es estándar para el demonio TLS): | ||
| + | |||
| + | # which dockerd | ||
| + | / | ||
| + | |||
| + | |||
| + | ##Para poder ejecutar el debuger del demonio dockerd, tendremo que tener renombrado el archivo | ||
| + | cd /ca | ||
| + | dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem | ||