Como o diretório “Data-container” é montado no diretório host para salvar dados persistentes

1

Estou tentando fazer o Dockerize do meu aplicativo Rails.

Atualmente, tenho dois contêineres:

  1. "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

  2. "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.

Iniciar e inspecionar "Contêiner de dados"

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
}

Iniciar e inspecionar "contêiner de servidor da Web"

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

Meu ambiente

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

    
por user1124133 27.08.2014 / 11:13

0 respostas

Tags