docker-mysql环境

c9x0cxw0  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(264)

我有一个基于 php:alpine 我正在尝试将mysql添加到构建中。

FROM php:alpine

COPY test-data/ /var/www/

RUN apk add --update --no-cache \
    mysql

# Composer

RUN curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer
ENV COMPOSER_ALLOW_SUPERUSER=1

WORKDIR /var/www

我的问题是在成功构建之后,我尝试使用mysql环境覆盖运行容器,但是我无法在容器内登录mysql。

$ docker run -e MYSQL_DATABASE=homestead -e MYSQL_USER=homestead -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=secret -ti --rm idecardo /bin/sh

测试mysql登录失败

$ mysql -uroot -p # with password "secret"
50pmv0ei

50pmv0ei1#

因为你是新手-总是尝试通过复制现成的工作代码和分解代码中正在做的事情来学习。
对于docker:
你可以看到mysql的docker存储库-https://hub.docker.com/_/mysql/ 在“说明”部分中,您将看到指向不同mysql版本的各种docker文件的链接。
以其中一个作为灵感来源,例如指向8.0/dockerfile的链接:https://github.com/docker-library/mysql/blob/fc3e856313423dc2d6a8d74cfd6b678582090fc7/8.0/dockerfile
注意,在dockerfile中的mysql安装指令之后,有entrypoint和cmd指令。
一般来说:
既然你想让php和mysql在docker上工作,我建议你看看DockerCompose。docker容器可以以多种方式运行,docker compose允许您启动多个docker容器,并在它们之间共享一些文件夹。在这种情况下,您需要启动单独的mysql容器和单独的php容器,在它们之间共享主机数据文件夹并启动代码。
另外,在线观看一些视频教程-它们详细解释了docker的基本知识和工作原理。

相关问题