有没有悬赏做ppt的网站,网站建设 项目文档,网站开发有哪些课程,做合法的海外购网站需要什么手续解决下我之前etcd使用docker镜像启动的坑
1、问题镜像docker-file#xff1a;
这个dockerfile看着看不出来问题#xff0c;但如果有人真的执行我之前两篇文章的文件#xff0c;就会有问题#xff0c;什么问题呢#xff0c;无法连接到etcd#xff0c;由于我是刚装上dock…解决下我之前etcd使用docker镜像启动的坑
1、问题镜像docker-file
这个dockerfile看着看不出来问题但如果有人真的执行我之前两篇文章的文件就会有问题什么问题呢无法连接到etcd由于我是刚装上docker排查了一圈包括docker网络及是否是本地docker的网络问题排查了一圈之后发现原来是我的dockerfile的问题
# 使用一个轻量级的基础镜像
FROM golang:latest# 设置工作目录
WORKDIR /app# 将本地编译好的可执行文件复制到容器中此处etcd_server.exe是我提前打好的etcd3.5的可编译文件
COPY ./server/etcd_server .# 暴露应用程序监听的端口如果有的话
EXPOSE 2379# 启动应用程序
CMD [./etcd_server]
2、解决方案
2.1 换成正规官网的etcd镜像
这个换成官网的etcd我看默认启动的还是127.0.0.1所以在启动命令的时候要加入--advertise-client-urlshttp://0.0.0.0:2379, --listen-client-urlshttp://0.0.0.0:2379
# 使用官方 etcd 镜像
FROM quay.io/coreos/etcd:latest# 将 etcd 数据目录复制到容器中
WORKDIR /etcdVOLUME /data# 暴露 etcd 默认端口
EXPOSE 2379 2380# 启动脚本
CMD [etcd]
2.2 修改镜像file
问题是由于在docker中监听的是127.0.0.1,所以无法暴露在外面修改CMD [./etcd_server, --advertise-client-urlshttp://0.0.0.0:2379, --listen-client-urlshttp://0.0.0.0:2379]此处让在容器中使用监听所有端口问题得到解决
# 使用更轻量的基础镜像
FROM golang:latest# 设置工作目录并复制本地文件到容器中
WORKDIR /appCOPY ./etcd_server .# 确保 etcd_server 具有可执行权限
RUN chmod x etcd_server# 暴露应用程序监听的端口如果有的话
EXPOSE 2379# 启动应用程序
CMD [./etcd_server, --advertise-client-urlshttp://0.0.0.0:2379, --listen-client-urlshttp://0.0.0.0:2379]当然我还尝试了在镜像打包好然后把etcd_server在docker容器中直接手动启动这个是无法解决的由于docker中该服务并没有启动所以端口没有暴露出去
此处算是把etcd的docker镜像部署收尾了