只是把数据库用docker部署在容器里,那么保存的数据也就在容器里,每次导入导出,或者容器被删除,那么将会很麻烦,docker本身自带路径映射,可以将宿主机器的目录映射到容器里,说干就干,来试着重新部署一下。
这次我们主要用到了docker-compose,什么是docker-compose?
- docker-compose 简介和安装
docker-compose 是 用于定义和启动多容器Docker应用程序的工具,使用过程大致分为三步:
1.Define your app’s environment with a Dockerfile so it can be reproduced anywhere.
1.用dockerfile配置环境,以便与可以复制到其他任意地方。
2.Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.
2.在docker-compose.yml中定义组成应用程序的Service,这样这些Service可以在一个隔离环境运行。
3.Run docker-compose up and Compose starts and runs your entire app.
3.用docker-compose up启动。
安装:
linux
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
- yml 文件配置
上篇文章我们用docker启动一个mongo容器,用了两种方式,一种是命令行,一种是yml文件配置,当然也可以用dockerfile。这里我们主要使用yml文件。
先了解一下配置文件的关键字:yml文件关键字
建议优先参考文档,文档中写出了关键字的有效版本,我只列一部分常用的。
描述字 | 用法 |
---|---|
build | 可以指定构建上下文的字符串,也就是 docker build -t 的路径。 |
context | 指向包含Dockerfile的目录的路径,或者指向git存储库的url。 |
dockerfile | 替代Dockerfile,组合使用另一个文件来构建,还必须指定构建路径。 |
args | 添加构建参数,这些环境变量只能在构建过程中访问。 |
cache_from | 用于缓存解析的image列表。 |
command | 覆盖默认命令,也可以是字符串列表。 |
container_name | 指定容器的名称。 |
depends_on | 指定依赖关系:docker-compose up 按依赖关系启动,优先启动被依赖的服务;docker-compose up SERVICE 启动单项服务时,自动包含依赖关系;docker-compose stop 按依赖关系停止,优先停止不被依赖的服务。 |
expose | 在不将端口发布到主机的情况下公开端口——它们只能被链接的服务访问,只能指定内部端口。 |