为了账号安全,请及时绑定邮箱和手机立即绑定

Dockerize MySQL 与另一个程序一起

Dockerize MySQL 与另一个程序一起

Go
跃然一笑 2022-08-15 15:52:41
所以我有一个不和谐,但我目前在家里的服务器上运行它。我现在决定从头开始设置服务器。现在我在服务器上有MySQL和程序(不在docker容器中),我现在想把它做成Docker化。为了简单起见,我决定只扩展MySQL容器,但我不断遇到错误。现在一切都可以正常工作,除了程序没有连接到MySQL服务器。我尝试使用以下命令启动应用程序CMD ./PokeBot结果是连接被拒绝错误。首先,我试图公开端口3306并用作MySQL服务器的IP。没有任何效果。127.0.0.1然后我认为MySQL服务器没有运行,所以我创建了一个Bash Shell脚本()来启动MySQL服务器,但是我得到了错误。.shFatal error: Please read "Security" section of the manual to find out how to run mysqld as root!我该怎么做才能在Docker容器中与MySQL一起运行该程序?我启动容器的命令是:docker run -p 3306:3306 name项目结构:这是我的 Dockerfile:FROM mysql:latest as builder# That file does the DB initialization but also runs mysql daemon, by removing the last line it will only initRUN ["sed", "-i", "s/exec \"$@\"/echo \"not running $@\"/", "/usr/local/bin/docker-entrypoint.sh"]# needed for intializationENV MYSQL_ROOT_PASSWORD=asdfghjklCOPY setup.sql /docker-entrypoint-initdb.d/ADD ca-certificates.crt /etc/ssl/certs/# Need to change the datadir to something else that /var/lib/mysql because the parent docker file defines it as a volume.# https://docs.docker.com/engine/reference/builder/#volume :#       Changing the volume from within the Dockerfile: If any build steps change the data within the volume after#       it has been declared, those changes will be discarded.RUN ["/usr/local/bin/docker-entrypoint.sh", "mysqld", "--datadir", "/initialized-db"]FROM mysql:latestENV MYSQL_ROOT_PASSWORD=asdfghjklADD ca-certificates.crt /etc/ssl/certs/COPY PokeBot /COPY --from=builder /initialized-db /var/lib/mysqlCOPY start.sh / EXPOSE 3306RUN apt updateRUN apt install ca-certificates sudo -yRUN update-ca-certificatesCMD ./start.sh
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

基本上,我想最好有两个容器:一个用于MySQL,一个用于你的程序,并通过docker-compose.yml将它们作为两个服务进行管理。通过这种方式,您可以在不接触代码容器的情况下更改数据库版本。现在,您需要通过 docker exec -it 将 ssh 到正在运行的容器中,并尝试从 bash 连接到您的 db,看看它是否有效。由于您的代码位于同一容器中,因此应该能够以类似的方式执行此操作


查看完整回答
反对 回复 2022-08-15
  • 1 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号