Docker持久数据连接
我正在尝试创build3个容器的Docker环境:
- 只有数据的容器
- 一个数据库容器
- 应用程序容器
我通过运行创builddatabase
和database
容器:
docker run -d -t --name dbdata -v /dbdata data-only
docker run -d -t --volumes-from dbdata --name db hdf5
我已经testing了data-only
容器和database
容器之间的持久性,它的工作原理。
链接app
容器:
这是我遇到问题的地方。 当我将app
容器链接到正在运行的database
容器时:
docker run -i -t -p 5000:5001 --link db:db --name app py-opencv
我无法find我data-only
卷/dbdata
。 我已经读了所有我能弄清楚为什么,但无济于事。
当我运行docker inspect app
我可以看到链接:
"Links": [ "/db:/app/db" ]
而且我也看到: "Mounts": []
和"VolumesFrom": null
不知道这是否是一个问题。
当我运行docker exec app cat /etc/hosts
我看到:
172.17.0.4 1cab4ab3c886 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 db 5e291000ab13
请帮忙
Dockerfiles(为了简洁,删除了一些内容):
data-only
FROM debian:jessie ENV HOME /root CMD ["true"]
database
FROM debian:jessie ENV HOME /root # Install dependencies via apt-get # Build HDF5 # Cleanup EXPOSE 5001
app
FROM python:3.5 ENV HOME /root # Install dependencies # Install Python packages # Build OpenCV and dependencies # Update environment and directories ENV PYTHONUNBUFFERED 1 ENV HDF5_DIR /usr/bin/ld RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/ EXPOSE 5000
您的数据容器只在db
容器中运行命令docker run -d -t --volumes-from dbdata --name db hdf5
如果要访问应用程序容器中的数据容器,则还应该添加命令volumes-from
用这个命令docker run -i -t -p 5000:5001 --link db:db --name app py-opencv
你只能链接两个容器。 app
容器获取有关db容器的/etc/hosts
configuration,而不是关于数据量。
所以,而不是docker inspect app
运行docker inspect db
,你会发现你的数据容器信息在安装参数