Como Elaborar um script que, ao ser executado dentro de um container docker, escreva em um arquivo a lista de todos os containers ativos na máquina que este container está sendo executado (maquina host) no momento da execução
Como Elaborar um script que, ao ser executado dentro de um container docker, escreva em um arquivo a lista de todos os containers ativos na máquina que este container está sendo executado (maquina host) no momento da execução
Não entendi mt bem, mas é possível verificar containers ativos com o comando:
docker ps
Convertendo para um script seria algo como:
#!/usr/bin/env sh
docker ps
O script tem que ser executado DENTRO do container docker e tem que mostrar todos os containers ativos no docker HOST.
Um container NÃO TEM acesso ao seu host, ele é ISOLADO do sistema hospedeiro. Essa é a ideia mesmo.
Guilherme, na verdade isso não é verdade. rsrs. Sim, um container pode sim ter acesso ao host. Seja através de uma porta seja através de de volumes. E com esse último foi que achei a solução.
Vamos lá. Criei um container DEBIAN que acessa o endpoint do serviço do docker usando volumes:
docker run -d --name=debian -v /var/run/docker.sock:/var/run/docker.sock debian sleep 1d
Entrei no container:
docker exec -it debian bash
Lá dentro instalei o vim e o curl:
apt update
apt install curl -y
apt install vim -y
Depois criei um .sh onde dentro dele cria-se um Json e joga num TXT todos os dados dos containers ativos naquele momento. Seguem os comandos.
vim containers-viewer.sh
#!/bin/bash
#Comando de visualização de todo os containers ativos no HOST curl --unix-socket /var/run/docker.sock http://localhost/containers/json >> containers.txt
Pronto, agora só executar o arquivo gerado quando executar esse .sh pra ter sempre informações de containers ativos no HOST
Opa, estamos falando de coisas diferentes. Faltou um "por padrão" na minha resposta. É possível acessar recursos da máquina host DESDE QUE você defina EXPLICITAMENTE estes recursos. Eu entendi que você queria um script genérico que funcionasse em QUALQUER container e esse não é o caso, e continua não sendo possível. Perceba que a sua solução depende muito mais do container, do que do script em si.
Agora, o que você fez foi criar um container especificamente para executar essa ação montando o socket do host nele. Isso funciona mesmo, conectar ao socket é também a ideia de um docker-machine, você se conecta no socket de outras máquinas para gerenciar seus containers remotamente.
Confesso que ainda não entendi a necessidade desse script kkkk, mas parabéns pela solução, cara.
NA verdade isso foi uma pergunta de u processo seletivo e eu tava queimando os dois únicos neurônios que tenho. Devo ter lesionado seriamente um deles mas deu certo. kkkk valeu pela participação camarada