Estou tentando fazer o Dockerize do meu aplicativo Rails.
Atualmente, tenho dois contêineres:
"Contêiner de dados". Neste contêiner está o código do aplicativo Rails e todas as gemas necessárias. "Contêiner de dados" está expondo volumes do diretório raiz do aplicativo Rails e do diretório gem
"Contêiner de web sever". Neste contêiner está executando Nginx + Passageiro. "Web sever container" é ligado aos volumes "Data-container".
Tudo funciona bem.
Mas preciso que todos os logs e imagens carregadas pelo usuário (armazenadas no diretório raiz do aplicativo Rails "public / images") sejam de backup no diretório do host. Eu sei que eu posso iniciar o novo contêiner que se conecta a "Data-container" e fazer algum backup para o diretório host. Mas essa abordagem não é exatamente o que eu tento alcançar. Eu quero que todos os logs e imagens sejam imediatos e de todos os tempos escritos no diretório do host.
Eu tento montar o diretório host para o diretório "Data-container", cujos dados eu queria que fossem armazenados na máquina host, mas essa abordagem não está funcionando.
docker run --name application -v $HOME/cabin/data/log:/opt/application/log -v $HOME/cabin/data/images:/opt/application/public/images foo/application
docker inspect application
"Volumes": {
"/opt/application": "/var/lib/docker/vfs/dir/0c2a96af0e13d2b1c451610dc7bd561cffd246564e1966cb55628d329b4ee62b",
"/opt/application/log": "/home/vagrant/cabin/data/log",
"/opt/application/public/images": "/home/vagrant/cabin/data/images",
"/webapp_gems": "/var/lib/docker/vfs/dir/b2a08475272e1a04eae121094c0369a38c22dd92ca76fc2c2418eeabea31e266",
"/webapp_lib64": "/var/lib/docker/vfs/dir/44df839567e15c471e3ccd33a28778d7f67496c32f6110703d4d5e15677e00f6"
},
"VolumesRW": {
"/opt/application": true,
"/opt/application/log": true,
"/opt/application/public/images": true,
"/webapp_gems": true,
"/webapp_lib64": true
}
docker run -d -p 9101:9101 --name server -v $HOME/cabin/data/log:/var/log/nginx -v $HOME/cabin/data/run:/var/run/nginx -v $HOME/cabin/configuration/nginx:/etc/nginx --volumes-from application foo/server nginx -c /etc/nginx/demo.conf
docker inspect server
"Volumes": {
"/etc/nginx": "/home/vagrant/cabin/configuration/nginx",
"/opt/application": "/var/lib/docker/vfs/dir/0c2a96af0e13d2b1c451610dc7bd561cffd246564e1966cb55628d329b4ee62b",
"/opt/application/log": "/home/vagrant/cabin/data/log",
"/opt/application/public/images": "/home/vagrant/cabin/data/images",
"/var/log/nginx": "/home/vagrant/cabin/data/log",
"/var/run/nginx": "/home/vagrant/cabin/data/run",
"/webapp_gems": "/var/lib/docker/vfs/dir/b2a08475272e1a04eae121094c0369a38c22dd92ca76fc2c2418eeabea31e266",
"/webapp_lib64": "/var/lib/docker/vfs/dir/44df839567e15c471e3ccd33a28778d7f67496c32f6110703d4d5e15677e00f6"
},
"VolumesRW": {
"/etc/nginx": true,
"/opt/application": true,
"/opt/application/log": true,
"/opt/application/public/images": true,
"/var/log/nginx": true,
"/var/run/nginx": true,
"/webapp_gems": true,
"/webapp_lib64": true
}
Ao executar o aplicativo em / home / vagrant / cabine / data / log e / home / vagrant / cabin / data / images , não são gravados dados do contêiner do aplicativo
docker info
Containers: 2
Images: 92
Storage Driver: devicemapper
Pool Name: docker-8:1-524459-pool
Pool Blocksize: 64 Kb
Data file: /var/lib/docker/devicemapper/devicemapper/data
Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
Data Space Used: 7605.2 Mb
Data Space Total: 102400.0 Mb
Metadata Space Used: 8.3 Mb
Metadata Space Total: 2048.0 Mb
Execution Driver: native-0.2
Kernel Version: 2.6.32-431.3.1.el6.x86_64
Operating System: <unknown>
docker version
Client version: 1.2.0
Client API version: 1.14
Go version (client): go1.3.1
Git commit (client): fa7b24f
OS/Arch (client): linux/amd64
Server version: 1.2.0
Server API version: 1.14
Go version (server): go1.3.1
Git commit (server): fa7b24f
.
uname -a
Linux vagrant-centos65.vagrantup.com 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
.
cat /etc/redhat-release
CentOS release 6.5 (Final)
Obrigado por qualquer conselho
Tags docker