Fiz um puxador do docker e posso listar a imagem baixada. Eu quero ver o conteúdo desta imagem. Fiz uma pesquisa na net, mas nenhuma resposta direta.
Fiz um puxador do docker e posso listar a imagem baixada. Eu quero ver o conteúdo desta imagem. Fiz uma pesquisa na net, mas nenhuma resposta direta.
Respostas:
Você pode simplesmente executar um contêiner de shell interativo usando essa imagem e explorar qualquer conteúdo que a imagem tenha.
Por exemplo:
docker run -it image_name sh
Ou seguindo para imagens com um entrypoint
docker run -it --entrypoint sh image_name
Ou, se você quiser ver como a imagem foi criada, ou seja, as etapas Dockerfile, é possível:
docker image history --no-trunc image_name > image_history
As etapas serão registradas no image_historyarquivo.
docker run -it --entrypoint cmd <image_name>funcionará.
A resposta aceita aqui é problemática, porque não há garantia de que uma imagem tenha qualquer tipo de shell interativo. Por exemplo, o zumbido / zumbido imagem contém em um único comando /drone, e ele tem um ENTRYPOINTbem, de modo que este irá falhar:
$ docker run -it drone/drone sh
FATA[0000] DRONE_HOST is not properly configured
E isso irá falhar:
$ docker run --rm -it --entrypoint sh drone/drone
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"sh\": executable file not found in $PATH".
Esta não é uma configuração incomum; muitas imagens mínimas contêm apenas os binários necessários para dar suporte ao serviço de destino. Felizmente, existem mecanismos para explorar um sistema de arquivos de imagem que não dependem do conteúdo da imagem. O mais fácil é provavelmente o docker exportcomando, que exportará um sistema de arquivos contêiner como um arquivo tar. Portanto, inicie um contêiner (não importa se falha ou não):
$ docker run -it drone/drone sh
FATA[0000] DRONE_HOST is not properly configured
Em seguida, use docker exportpara exportar o sistema de arquivos para tar:
$ docker export $(docker ps -lq) | tar tf -
O docker ps -lqsignifica "me dê o ID do contêiner do docker mais recente". Você pode substituir isso por um nome ou ID explícito de contêiner.
Você não deve iniciar um contêiner apenas para ver o conteúdo da imagem. Por exemplo, você pode procurar conteúdo malicioso, não executá-lo. Use "create" em vez de "run";
docker create --name="tmp_$$" image:tag
docker export tmp_$$ | tar t
docker rm tmp_$$
docker export tmp_$$ > image-fs.tar.
docker export tmp_$$ | tar tnão vai funcionar.
tarpode não estar instalado em sua máquina. Tente tar --helpverificar isso.
-oparâmetro para especificar o arquivo no qual gravar. Por exemplo docker export -o c:\temp\tmp_$$.tar tmp_$$.
docker save nginx > nginx.tar
tar -xvf nginx.tar
Os seguintes arquivos estão presentes:
https://sreeninet.wordpress.com/2016/06/11/looking-inside-container-images/
OU
você pode usar o mergulho para visualizar o conteúdo da imagem interativamente com a TUI
dockerapenas ver o conteúdo do que é, essencialmente, apenas um tipo diferente de arquivo morto?
docker save --output nginx.tar nginx:latest, caso contrário, de acordo com o documento, ele irá conter "todas as camadas pai, e todas as etiquetas + versões"
Para listar o conteúdo detalhado de uma imagem, é necessário executar o docker run --rm image/name ls -alRlocal em que --rmsignifica remover assim que sair do formulário.
lsdisponível e naPATH
EXPLORANDO A IMAGEM DO DOCKER !
Descobrir que tipo de concha é lá bashou shou ...
Inspecione a imagem primeiro: docker inspect name-of-container-or-image
Procure entrypointou cmdno retorno de json.
Então faça: docker run --rm -it --entrypoint=/bin/bash name-of-image
uma vez dentro do: ls -lsaou qualquer outro comando do shell como:cd ..
A -itsignifica interativo ... e tty. os --rmsuportes para remover o recipiente após a execução.
ls. Ou realmente qualquer ferramenta comum.
Podemos tentar um mais simples da seguinte maneira:
docker image inspect image_id
Isso funcionou na versão Docker:
DockerVersion": "18.05.0-ce"
Com o Docker EE para Windows (17.06.2-ee-6 no Hyper-V Server 2016), todo o conteúdo dos Windows Containers pode ser examinado no C:\ProgramData\docker\windowsfilter\caminho do sistema operacional host.
Não é necessária montagem especial.
O prefixo da pasta pode ser encontrado pelo ID do contêiner da docker ps -asaída.
Existe uma ferramenta gratuita de código aberto chamada Anchore que você pode usar para digitalizar imagens de contêineres. Este comando permitirá listar todos os arquivos em uma imagem de contêiner
conteúdo da imagem anchore-cli myrepo / app: arquivos mais recentes