docker-compose卷未挂载

7
我的docker-compose.yml文件如下:
version: '2'
services:
  joomla:
    image: joomla
    links:
      - joomladb:mysql
    volumes:
      - "./www:/var/www/html"
    ports:
      - 9010:80
    environment:
      MYSQL_PORT_3306_TCP: 3306
      JOOMLA_DB_HOST: joomladb
      JOOMLA_DB_PASSWORD: "example"
      JOOMLA_DB_USER: "root"
      JOOMLA_DB_NAME: "joomla"

  joomladb:
    image: mysql:5.6
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "example"
      MYSQL_DATABASE: "joomla"
    volumes:
      - "./db:/var/lib/mysql"
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
     - 9011:80
    environment:
      MYSQL_ROOT_PASSWORD: "example"
      MYSQL_DATABASE: "joomla"
    container_name: phpmyadmin

/var/www/html目录挂载在主机上(目录www),其中包含所有Joomla文件。 然而,主机目录./db甚至没有被创建。 但是,如果我进入db容器,该目录不为空:
root@docker1:/home/juanda/soplaelcierzo# docker exec -t -i 959 /bin/bash
root@95926c23f49a:/# cd /var/lib/mysql/
root@95926c23f49a:/var/lib/mysql# ls
auto.cnf  ib_logfile0  ib_logfile1  ibdata1  joomla  joomladb  mysql  performance_schema
2个回答

7

我收到了一条未看到的警告:

警告:服务“joomladb”正在使用以前容器中的卷“/var/lib/mysql”。主机映射“/home/juanda/soplaelcierzo/db”无效。删除现有容器(使用docker-compose rm joomladb)以使用主机卷映射。


3

当有两个相似的文件夹中存在同一项目时,可能会出现此问题。因此,当您在第一个文件夹中运行docker-composer时,它会将本地文件夹"./db"绑定到容器卷上。如果在此之后尝试在另一个文件夹中运行,则会试图将另一个文件夹绑定到同一容器路径上。因此,上面提供的建议

docker-compose rm joomladb

应该会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接