-
Notifications
You must be signed in to change notification settings - Fork 0
/
Entendendo as Imagens do container
59 lines (44 loc) · 4.37 KB
/
Entendendo as Imagens do container
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
===================================================================================================================================================================================================
DEFINIÇAÕ DE IMAGEM E INFORMAÇÕES EXTRAS:
Imagens de conteineres: Uma imagem é um conjunto de camadas que formamos imagens. São independentes entre sí, possuindo ID´s diferentes entre si.
Para acessar suas imagens, digite em seu terminal: docker images ou docker image ls:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest e34e831650c1 13 days ago 77.9MB
hello-world latest d2c94e258dcb 8 months ago 13.3kB
dockersamples/static-site latest f589ccde7957 7 years ago 191MB
Agora, para pegarmos mais informações a respeito dessas imagens, digite o comando: docker inspect id_imagem
Para verificar as camadas de uma imagem digite: docker history id_image
docker history f589ccde7957
IMAGE CREATED CREATED BY SIZE COMMENT
f589ccde7957 7 years ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "cd /u… 0B
<missing> 7 years ago /bin/sh -c #(nop) WORKDIR /usr/share/nginx/h… 0B
<missing> 7 years ago /bin/sh -c #(nop) COPY file:c8203f6bfe2ff6ba… 8.75kB
<missing> 7 years ago /bin/sh -c mkdir -p /usr/share/nginx/html 0B
<missing> 7 years ago /bin/sh -c #(nop) ENV AUTHOR=Docker 0B
<missing> 7 years ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon … 0B
<missing> 7 years ago /bin/sh -c #(nop) EXPOSE 443/tcp 80/tcp 0B
<missing> 7 years ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B
<missing> 7 years ago /bin/sh -c apt-key adv --keyserver hkp://pgp… 65.4MB
<missing> 7 years ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.9.12-1… 0B
<missing> 7 years ago /bin/sh -c #(nop) MAINTAINER NGINX Docker Ma… 0B
<missing> 7 years ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 7 years ago /bin/sh -c #(nop) ADD file:b5391cb13172fb513… 125MB
Informação importante: Caso já tenhamos uma imagem salva em nosso dispositivo, faremos apenas download das imagens que não temos, para não repetir informações, utilizando as camadas em outras imagens (reutilização de imagens).
Quando temos nossa imagem, temos apenas permissão de leitura (ready only). Não podemos modificar depois de criar, é imutável!
Você se pergunta.. "Se apenas leitura, por que quando dou o comando docker run -it nome_imagem ele pode criar arquivos, navegar em diretórios?"
Resposta: O container é uma imagem adicional de read and write (camada temporária por cima da imagem. Quando deletamos o container, a camada extra é deletada também.
Os conteineres são leves pois: Além de serem processos dentro do sistema, quando ele entra em execução, estamos reaproveitando (reutilizando) as mesmas imagens
(por exemplo, 10 mil conteineres com as mesmas imagens e diferenciados apenas
por uma em cada de read and write.) Acaba que o tamanho do conteiner tem por maior peso a camada de write que estamos gerando para ele, pois a imagem será reutilizada para cada um deles.
Resumindo: Eles reaproveitam as camadas das imagens que já temos e quando criamos novos conteineres, apenas reutilizamos as mesmas imagens e camadas além da camada adicional de ready and write
===================================================================================================================================================================================================
CRIAÇÃO DE IMAGENS PARA CONTEINERES:
Vamos definir nosso arquivo docker file ---> e partir dele criar nossa imagem --> gerar conteiner (run) a partir da imagem
Estaremos utilizando o Visual Studio Code para realizar esse procedimento. Para ter um tutorial de instalação e conexão deste com o wsl, entre esse diretório que terá a explicação:
https://www.youtube.com/watch?v=k9MF9rMJnTE
Dentro do Visual Studio code, crie um arquivo chamamdo "DockerFile"
Agora queremos que dentro do projeto como um todo, termos o node para rodar um servidor, queremos sua imagem, que já está pronta: https://hub.docker.com/_/node
Vamos procurar uma versão do node, para utilizar como base para nossa
Para rodar o nosso DockerFile, rode o comando:
https://docs.docker.com/engine/reference/builder/