VOLUMES – Dia 2
Marcos Rafael Machado
Núcleo de Infraestrutura de TI
Diretoria de TI
Versão 1.0
Revisão
Hardware
Host S.O.
Container Container Container
Docker
Bins/Libs Bins/Libs Bins/Libs
Atenção: Nos exemplos usamos o root, mas em um ambiente de
produção o melhor é utilizar um usuário normal
Data Volumes
Container
HOST
● Associações
● Host/Container
● Container/Container
● Persistência
● Reutilização
Adicionar um Volume de Dados
$ docker run -d -P --name web -v /webapp
training/webapp python app.py
Verificar o Status do Volume
$ docker inspect web
Utilizando um Diretório do Host
$ docker run -d -P --name teste -v
/data/webapp:/opt/webapp training/webapp python
app.py
Volume Somente Leitura
$ docker run -d -P --name web -v
/src/webapp:/opt/webapp:ro training/webapp
python app.py
Compartilhando Volumes
Container origem
$ docker create -v /dbdata --name dbstore
training/postgres /bin/true
Containers adicionais
$ docker run -d --volumes-from dbstore --name
db1 training/postgres
$ docker run -d --volumes-from dbstore --name
db2 training/postgres
Compartilhamento Volumes
(Cont.)
Backup/Restore/Migração
● Dependerá da estratégia de implantação
● Pode-se utilizar scripts/apps auxiliares como:
– https://github.com/discordianfish/docker-backup
– https://github.com/ClusterHQ/flocker
● Estude seu projeto de armazenamento de
dados
Docker Volume Create
● Criando volumes antes dos containers
Dockerfile
FROM ubuntu
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
VOLUME /myvol
Considerações
● Containers são efêmeros
● O quão importante são seus dados
● Cuidado com ações manuais
● Utilização de ferramentas auxiliares
Apostila: marcos.machado@ifpr.edu.br
Imagem retirada do site http://getcloudify.org

Docker volumes