Day 2 Flashcards
Quais os tipos de storage que podem ser montados no Docker ?
Bind - Um diretório já existente é montado como file system no container
Volume - São criados e gerenciados pelo Docker. A área onde os volumes são armazenados são isoladas do resto do host.
tmpfs - As informações são armazenadas em memória
named pipes - É utilizada para a comunicação entre o host e o container.
Quais os principais parâmetros devo passar para se montar um volume quando vamos rodar um container ?
type - Tipo de volume bind ou volume
source - Diretório origem no seu host
destination - Nome do file system que será criado
ro - Read Only
Como faço para criar um container ubuntu que tenha acesso ao diretório /acme criado no meu host e que tenha o nome de /application/data no container ?
docker container run -it –mount type=bind,source=acme,destination=/application/data ubuntu
Como faço para criar um volume de nome application ?
docker volume create application
Onde são armazenados os dados do volumes no docker ?
/var/lib/docker/volumes/
Qual comando posso utilizar para saber onde os dados do volume application estão armazenados no meu host ?
docker volume inspect application
Qual comando posso utilizar para verificar quais volumes estão armazenados em um host ?
docker volume list
Qual comando posso utilizar para deletar um volume de nome application ?
docker volume rm application
Estou rodando um container que tem um volume montado de nome application. Criei um arquivo de nome faturamento.txt.
Onde no host está localizado esse arquivo ?
/var/lib/docker/volumes/application/_data
Tentei rodar o comando:
docker volume rm application
Mas apareceu a seguinte mensagem:
Error response from daemon: remove application: volume is in use - [25f5cfab021c1ba3a9b3eefa8dacdc3e64c61f320d67008fc21769053e6dce8c, 5123f59a8eefc400cefb6c5795d34951b8554d1c4bfe8facc42225c3fbebc987]
Porque não consigo remove-lo ?
O volume application está vinculado aos containers 25f5cfab021c1ba3a9b3eefa8dacdc3e64c61f320d67008fc21769053e6dce8c e 5123f59a8eefc400cefb6c5795d34951b8554d1c4bfe8facc42225c3fbebc987 mesmo eles não estando rodando nesse momento.
Como faço para verificar quais volumes estão montados em um container ?
docker container inspect (id) ou (nome)
Como faço para deletar todos os containers que não estão rodando nesse momento ?
docker container prune
Como faço para deletar todos os volumes que não estão em uso?
docker volume prune
Rodei o comando docker volume prune. Após isso rodei o comando: docker volume list DRIVER VOLUME NAME local acme
Porque o volume acme não foi deletado ?
Porque o volume acme está vinculado a um container.
Rodei o comando docker container prune.
Após isso rodei o comando docker container list –all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
754ec996412f ubuntu “/bin/bash” 20 hours ago Up 20 hours great_moser
Porque o container 754ec996412f não foi deletado?
Porque o container 754ec996412f está em uso no momento.
O que é um data-only-container
É um container que é criado com um volume montado e que serve para outros containers utilizarem o volume. Nesse modo não é possível deletar o volume pois ele indicara que está em uso por um container.
De um exemplo do comando para criar um data-only-container ?
docker container create –name dados –mount type=volume,source=acme,destination=/dados centos
Qual o objetivo de um docker file ?
O objetivo de um docker file é servir de receita para criar imagens personalizadas.
Qual o nome do arquivo responsável pela personalização de uma imagem?
Dockerfile
No DockerFile abaixo qual o significado de cada linha ?
MAINTAINER “Marco Ren”
FROM debian
RUN apt-get update && apt-get install -y apache2 && apt-get clean
ENV APACHE_LOCK_DIR=”/var/lock”
ENV APACHE_PID_FILE=”/var/run/apache2.pid”
ENV APACHE_RUN_USER=”www-data”
ENV APACHE_RUN_GROUP=”www-data”
ENV APACHE_LOG_DIR=”/var/log/apache2”
COPY index.html /var/www/html
ADD index.html /var/www/html
USER root
WORKDIR /var/www/html
LABEL description=”Webserver”
VOLUME /var/www/html
EXPOSE 80
ENTRYPOINT [“/usr/sbin/apachectl”]
CMD [“-D”,”FOREGROUND”]
MAINTAINER - Define um comentário de quem é o autor da imagem
FROM - Qual imagem será baseada para construir a nova imagem
RUN - Comandos que serão executados na hora da criação da nova imagem
ENV - Definição de variáveis que serão utilizadas na nova imagem
COPY - Copia o arquivo para o destino especificado dentro do container
ADD - Copia o arquivo para o destino especificado dentro do container.
USER - Especifica que o usuário root irá executar os comandos ENTRYPOINT, CMD e RUN
WORKDIR- Especifica qual o diretório onde serão executadas as instruções ENTRYPOINT, RUN E CMD.
LABEL - Criação de labels
VOLUME - Criação de volumes com nomes especificados
EXPOSE - Especifica em qual porta o docker estará escutando (LISTENING)
ENTRYPOINT - Designa qual o principal processo que irá rodar no container
CMD - Em conjunto com a entrada ENTRYPOINT define os parâmetros para a mesma.
Qual comando utilizo para criar uma nova imagem a partir de um Dockerfile ?
docker image build -t (tag) (diretório)
Qual comando posso utilizar para verificar quais imagens estão no meu host ?
docker image list