Docker – 如何启动mysql数据库与一个容器上运行的.sql文件?
这是我第一次和docker工作。 我想为我的Java应用程序创build一个具有testing环境的远程容器。 我也需要mysql数据库。 一切都应该在一个容器上运行(这是一个要求,而不是我的想法)。
我需要用.sql文件启动一个数据库(假设file.sql位于与Dockerfile相同的目录中)
非常感谢您的帮助:)
这是我的Dockerfile的一部分:
FROM ubuntu:16.04 #Install JRE RUN apt-get update && apt-get install default-jre -y #Install JDK RUN apt-get update && apt-get install default-jdk -y #Install Maven RUN apt-get update && apt-get install maven -y #Install wget RUN apt-get update && apt-get install wget -y #\&& rm -rf /var/lib/apt/lists/* #Install unzip RUN apt-get update && apt-get install unzip -y #Install glassfish RUN mkdir -p /opt && cd opt/ RUN wget http://download.java.net/glassfish/4.1.1/release/glassfish-4.1.1.zip RUN unzip glassfish-4.1.1.zip #Install mysql ENV MYSQL_USER=mysql\ MYSQL_DATA_DIR=/var/lib/mysql \ MYSQL_RUN_DIR=/run/mysqld \ MYSQL_LOG_DIR=/var/log/mysql RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server \&& rm -rf ${MYSQL_DATA_DIR} \&& rm -rf /var/lib/apt/lists/*
首先使用ADD来复制图像中的.sql文件。 然后添加一个RUN命令来使用mysql命令恢复你的数据库。
谢谢大家的回答!
如果有人遇到同样的问题,我发现了一种溶剂:
RUN echo "mysql-server mysql-server/root_password password password" | debconf-set-selections RUN echo "mysql-server mysql-server/root_password_again password password" | debconf-set-selections RUN apt-get update && apt-get -y install mysql-server && service mysql start
如果mysql仍然没有启动,请检查/etc/docker/daemon.json,确保它看起来像这样:
{ "storage-driver":"overlay2" }
如果你没有这个文件执行:
mkdir -p /etc/docker
echo '{"storage-driver":"overlay2"}' > /etc/docker/daemon.json
systemctl restart docker.service
- 安装mongodb pecl软件包的问题:/ tmp / pear / temp / mongodb / configure:./configure.lineno:line 1:syntax error:unterminated quoted string
- 如何链接Docker容器之间的二进制文件
- 使用docker和teamcity编写dockerfile部署和运行Spring Boot应用程序
- Docker鲸鱼图标没有出现在系统托盘中
- Linux curl post请求和错误417,但sudo成功?
- 如何在Docker容器中显示PostgreSQL数据库?
- 如何在docker artifactory容器中使用自己的文件夹作为卷?
- 在Heroku上使用Docker部署REST api
- 了解Docker撰写的端口和链接