我是Docker和docker的初学者 - 在我的Mac上进行本地开发。目前,如果我重新启动容器,MySql数据将被清除。
我想为MySql本地开发启用持久存储。
有没有办法可以将我在docker容器中运行的应用程序连接到我的Mac主机上运行的MySql?
我的docker-compose.yaml
文件:
mysql:
build: ./mysql
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: ******
restart: on-failure
ports:
- 3306:3306
除了在本地机器上将docker应用程序连接到MySql之外,还有其他方法可以实现吗?
答案 0 :(得分:2)
您可以使用function executeQuery(req, res) {
log.info("entering executeQuery");
//var key = req.query.key;
if (!_.isEmpty(req.body)) {
var queryString = req.body.query;
log.info("queryString: : " + queryString);
}
var query = {
'queryType': 'SQL',
'query': queryString
};
var url = 'http://localhost:8047/query.json';
var options = {
method: 'post',
body: query,
json: true,
url: url
};
var callback = function (err, response, body) {
if (err) {
console.error('error posting json: ', err)
throw err;
}
log.info(typeof body);
body.pipe(res);
}
request(options, callback);
}
文件中的volumes
来解决此问题。请参阅以下链接
link1,
link2。每当docker容器运行时,它都会将卷映射到容器。 docker-compose.yaml中卷的语法如下:
docker-compose.yaml