docker - 在 docker-compose.yml 上复制 'docker volume create --name data' 命令

标签 docker docker-compose docker-volume

我正在使用 docker-compose 构建我的容器,我想使用 Docker 提供的新卷 API,但我不知道如何使用。

我希望能够说 docker-compose up -d 到:

  • 创建一个卷,如果已创建,则使用它。
  • 使用来自先前卷容器的数据创建服务容器。

最佳答案

首先,您必须使用版本 2 Compose 文件才能使用新规范来创建和使用命名卷。 Compose File Reference包括您需要知道的所有内容,包括示例。

总结一下:

  1. version: '2' 添加到 docker-compose.yml 的顶部。
  2. 将服务单元放在 services: 键下。
  3. 将体积单位放在 volumes: 键下。
  4. 当引用来自服务单元的命名卷时,指定 volumename:/path 其中 volumename 是在 volumes: 下给出的名称键(在下面的示例中是 dbdata)和 /path 是挂载卷的容器内的位置(例如,/var/lib/mysql)。

这是一个创建命名卷 dbdata 并从 db 服务引用它的最小示例。

version: '2'
services:
  db:
    image: mysql
    volumes:
      - dbdata:/var/lib/mysql
volumes:
  dbdata:
    driver: local

关于docker - 在 docker-compose.yml 上复制 'docker volume create --name data' 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34513938/

相关文章:

ruby-on-rails - Docker,Docker Compose-如何运行RSpec测试

docker - 如何在 docker-compose.yml 中设置/获取项目名称

docker-compose 卷未同步

docker - 使用 Docker-Compose 启动具有不同配置的容器的多个实例

docker - 在 Dockerfile 中包含 docker 套接字

docker - 使用 Docker Swarm 定义共享主机卷

oracle - 如何在 docker 容器内的 Oracle 数据库上使用 sqlldr?

docker - 本地Docker与Kubernetes集群的连接

linux - 无法从 linux 发行版 (wsl 2) 中挂载/var/run/docker.sock

docker - 对Docker容器应用程序使用Docker Nginx反向代理