【问题标题】:Why edit contents of docker-compose.yml are not reflected?为什么不反映 docker-compose.yml 的编辑内容?
【发布时间】:2020-02-29 06:48:39
【问题描述】:

我想通过 Docker 来使用 MySQL。

我编写了以下 DockerFile 和 docker-compose.yml。

Dockerfile

FROM mysql:8.0
RUN mkdir /var/log/mysql
RUN touch /var/log/mysql/mysqld.log

docker-compose.yml

version: '3'
services:
  dbserver:
    build: ./docker/mysql
    image: test-db:0.0.1
    restart: always
    environment:
      MYSQL_DATABASE: prototype
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: rootpassword
    ports:
      - "3306:3306"
    volumes:
      - ./docker/mysql/initdb.d:/docker-entrypoint-initdb.d
      - ./docker/mysql/conf.d:/etc/mysql/conf.d
      - ./log/mysql:/var/log/mysql
      - ./docker/mysql/data:/var/lib/mysql
volumes:
  mysql-bd:
    driver: local

我构建成功,可以确认数据库了。

然后我想更改数据库名称,所以我编辑了以下 yml 文件的一部分。

之前

      MYSQL_DATABASE: prototype

之后

      MYSQL_DATABASE: test_db

然后,我确认了数据库,但它的名称没有改变。

我把MySQL容器去掉了再试一次,结果还是没变。

为什么 docker-compose.yml 的编辑内容没有反映?

【问题讨论】:

    标签: mysql docker docker-compose dockerfile


    【解决方案1】:

    您正在为数据库使用主机卷,这意味着数据库在容器重新启动之间保持不变。

    ...
    volumes:
      ./docker/mysql/data:/var/lib/mysql
    ...
    

    删除本地目录./docker/mysql/data 并重新启动您的服务。将反映数据库更改。

    【讨论】:

    • 感谢您的建议!反映了编辑内容。我删除了本地目录./docker/mysql/data 并重新启动。果然如你所说!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2018-05-09
    相关资源
    最近更新 更多