Reexecutando a sessão do Docker

0

Eu fiz o download da imagem do docker e a executei de forma interativa usando o argumento -it . No entanto, existem alguns aplicativos que estão faltando e eu os instalo por apt-get . O problema é que toda vez que eu saio da sessão, tudo que eu instalei é apagado e eu tenho que reinstalá-lo na próxima vez. Pensei que talvez a instalação de aplicativos em um diretório montado usando a opção -v pudesse funcionar, mas como já existem alguns outros aplicativos nesse diretório, pensei que talvez não fosse a solução ideal. Existe uma maneira padrão de salvar a sessão atual, ou seja, salvar os aplicativos que eu instalei. E quanto às alterações nos arquivos .bashrc e .bash_profile e semelhantes. Existe uma maneira elegante de salvá-los também?

ATUALIZAÇÃO:

Esta é a sessão e seu ID do contêiner, que gostaria de executar novamente. Existe uma maneira de executá-lo interativamente novamente usando o ID do contêiner?

CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                       PORTS               NAMES
50e77c283ae9        shogun/shogun-dev         "bash"              24 hours ago        Exited (1) 4 hours ago                           dreamy_fermi
    
por Ameer Jewdaki 26.03.2018 / 17:15

2 respostas

2

Eu vejo no seu problema que você tem duas maneiras de contornar isso:

  • Gere uma imagem do docker a partir de um contêiner que tenha todos os pacotes e configurações que você precisa persistentes. Dessa forma, você não precisa instalar pacotes e fazer configurações toda vez que cria um novo contêiner
  • Crie uma imagem de encaixe personalizada do Dockerfile com todos os pacotes que você precisa instalar. Ao executar o contêiner, você pode mapear arquivos personalizados e armazenamento de dados persistente usando -v volume .

Vamos usar um exemplo para tornar isso mais claro.

# docker run -it --name test_con ubuntu:16.04 /bin/bash

Vou instalar alguns pacotes, ou seja, vim, bash-completion e wget.

root@9c67dc1776cd:/# apt-get update
root@9c67dc1776cd:/# apt-get install vim bash-completion wget

Em seguida, crie uma nova imagem do Docker a partir desse contêiner. Eu a nomeei como test_con. Para isso, usaremos a opção de comando commit.

# docker commit -m "updated packages" test_con ubuntu:v1

Se a execução do comando for bem-sucedida, você deverá obter uma saída semelhante a essa.

sha256:cdf9dc8fe82407b49bae2a2840e7f59706ac84e9f6a0fff55a62afc7dd0db3c3

Confirme se um novo contêiner foi realmente criado com este comando:

# docker images

Crie um contêiner de teste e verifique se o wget está presente.

# docker run --name test --rm -it ubuntu:v1
root@401345aecec5:/# which wget
/usr/bin/wget

Para a segunda opção, você pode ver esta página wiki nos comandos docker . Isso ajudará você a personalizar suas imagens na criação inicial.

    
por 06.04.2018 / 13:58
1

O ponto principal do Docker é que ele não muda. Se você quiser alterá-lo, atualize a imagem do Docker .

    
por 26.03.2018 / 17:20

Tags