【问题标题】:Separate MySQL Docker Container独立的 MySQL Docker 容器
【发布时间】:2017-12-23 02:18:54
【问题描述】:

我正在尝试找出是否可以在以下条件下为 MySQL 创建一个单独的 Docker 容器:

  1. 使用 docker-compose 进行构建
  2. 使用主机的操作系统
  3. 使用主机的 MySQL 文件夹保存数据

我只使用 Docker 文件而不是 docker-compose 成功地完成了数字 #1 和 #2,我试图通过研究一个工作示例来缩短学习曲线。关于#3,我不确定是否可能。我正在考虑一个符号链接,但不太确定。

谢谢。

【问题讨论】:

  • 你熟悉Docker volumes吗?
  • 是的。我明白你的意思,但你能进一步解释一下吗?
  • 使用-v参数docker run(或docker-compose中的等效配置)将主机的mysql文件夹挂载为卷。

标签: ubuntu docker docker-compose


【解决方案1】:

正如您已经完成了 #1 和 #2 以及关于 #3 点,是的,您可以将主机卷挂载到容器卷,并且可以通过 docker-compose 运行。

docker compose 是用于运行多个容器并配置这些容器的工具。Docker compose 使用 .yml 文件进行配置。

你需要先从 dockerfile 创建 docker 镜像,然后安装 docker-compose

https://docs.docker.com/compose/install/#install-compose

然后创建 .yml 文件并定义如下的 mysql 配置。

 mysqldb:
        image: mysql
        container_name: ${MYSQL_HOST}
        restart: always
        environment:
            - MYSQL_DATABASE=${MYSQL_DATABASE}
            - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
            - MYSQL_USER=${MYSQL_USER}
            - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        ports:
            - "3306:3306"
        volumes:
- "./data/db/mysql:/var/lib/mysql"

https://docs.docker.com/compose/overview/

【讨论】:

    【解决方案2】:

    您可以并且应该在单独的容器中运行 MySQL。您可以将其创建为单独的 docker 映像,或者从同一个 docker 映像运行两个单独的容器。容器可以从 docker-compose 或 bash 启动。

    在 docker (v1.0) 的早期版本中,我对 docker 卷的体验并不积极。直到今天,我仍然使用 -v 安装主机操作系统以进行持久数据存储,这对我来说效果很好。 -v 选项允许使用 host OS 数据文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-12
      • 2022-10-17
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多