Ubuntu 单独的MySQL Docker容器

Ubuntu 单独的MySQL Docker容器,ubuntu,docker,docker-compose,Ubuntu,Docker,Docker Compose,我试图找出是否可以在以下条件下为MySQL创建单独的Docker容器: 使用docker compose进行构建 使用主机的操作系统 使用主机的MySQL文件夹保存数据 我只使用Docker文件成功地完成了数字1和数字2,但没有使用Docker compose,我正在通过研究一个工作示例来缩短学习曲线。关于#3,我不确定这是否可能。我在想一个象征性的联系,但不是很确定 谢谢。您可以而且应该在单独的容器中运行MySQL。您可以将其创建为单独的docker映像,或者从同一docker映像运行两个单独

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

  • 使用docker compose进行构建
  • 使用主机的操作系统
  • 使用主机的MySQL文件夹保存数据
  • 我只使用Docker文件成功地完成了数字1和数字2,但没有使用Docker compose,我正在通过研究一个工作示例来缩短学习曲线。关于#3,我不确定这是否可能。我在想一个象征性的联系,但不是很确定


    谢谢。

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

    在docker(v1.0)的早期版本中,我对docker卷的体验并不乐观。直到今天,我还是使用-v装载了用于持久数据存储的主机操作系统,这对我来说非常有效。-v选项允许使用主机操作系统数据文件夹

    正如您已经对#1和#2以及关于#3点所做的,是的,您可以将主机卷装载到容器卷,并且可以通过docker compose运行

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

    您需要首先从dockerfile创建docker映像,然后安装docker 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"
    

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