我希望将
~/mydir
目录与主机共享,但不替换Docker容器目录中的主机文件。
因此,我有一个 docker-compose.yml
文件。version: '2'
services:
app:
container_name: mono
build: .
volumes:
# save .composer files on host to keep cache warmed up
- '/srv/mono/mydir:/root/mydir'
command: sleep infinity
和 Dockerfile
#/bin/bash
FROM php:5.6
RUN mkdir /root/mydir && echo '{}' > /root/mydir/myfile.json
VOLUME /root/mydir
目录/srv/mono/mydir
为空。它被主机目录替换了。这很明确。
但是如何保留原始文件?
例如,对于MySQL Percona容器,可以使用以下方法:
version: '2'
services:
percona-56:
container_name: percona-56
image: percona/percona-server:5.6
volumes:
- /srv/mysql/percona-56:/var/lib/mysql
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
容器中有原始文件:
$ ll /srv/mysql/percona-56
total 176220
auto.cnf
error.log
ibdata1
ib_logfile0
ib_logfile1
init.ok
mysql
performance_schema
我尝试检查Percona Dockerfile,但没有找到与卷共享相关的内容。
$ docker --version
Docker version 1.12.3, build 6b644ec
docker run -it --rm -v
pwd/conf/server.conf:/etc/nginx/nginx.conf nginx
,并且如预期地将该文件挂载到了nginx配置文件上。如果它没有工作,您应该开一个新问题。 - Paul Becotte