你如何从docker内部连接到mysql服务器?

时间:2021-04-30 20:47:55

标签: mysql docker

我想为我的 CI 作业构建一个 Docker 容器。容器应该有自己的mysql服务器。

我开始构建 mysql docker 镜像,如下所示:

# Use Docker image from Dockerhub pre-build with mysql
FROM mysql:latest

# Update apt
RUN apt-get update -y

# install mysql server
RUN echo 'mysql-server mysql-server/root_password password root' | debconf-set-selections
RUN echo 'mysql-server mysql-server/root_password_again password root' | debconf-set-selections
RUN echo 'mysql-community-server mysql-server/default-auth-override select Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)' | debconf-set-selections
RUN apt-get install mysql-server -y

RUN echo 'show databases;' | mysql

但是在最后一行,它失败了,因为它无法连接到mysql服务器。

 > [16/16] RUN echo 'show databases' | mysql:
#19 0.603 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

我认为这是因为 mysql 服务器没有运行。如果我将最后一行更改为

RUN echo 'show databases;' | mysql --host=127.0.0.1

然后我收到类似的消息:

#19 0.813 ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1:3306' (111)

我曾尝试使用 service mysql startsystemctl start mysql/etc/init.d/mysqld start,但这些都不起作用。我打算如何启动 mysql 服务器并从同一个 Docker 容器连接到它?

我也一直在尝试使用 docker run --rm -it mysql bash 并进行交互,但我也无法让它以这种方式工作。

0 个答案:

没有答案