我想为我的 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 start
和 systemctl start mysql
和 /etc/init.d/mysqld start
,但这些都不起作用。我打算如何启动 mysql 服务器并从同一个 Docker 容器连接到它?
我也一直在尝试使用 docker run --rm -it mysql bash
并进行交互,但我也无法让它以这种方式工作。