解决下我之前etcd使用docker镜像启动的坑

发布时间:2024年01月12日

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 镜像
FROM quay.io/coreos/etcd:latest

# 将 etcd 数据目录复制到容器中
WORKDIR /etcd

VOLUME /data

# 暴露 etcd 默认端口
EXPOSE 2379 2380

# 启动脚本
CMD ["etcd"]
2.2 修改镜像file

问题是由于在docker中监听的是127.0.0.1,所以无法暴露在外面,修改CMD ["./etcd_server", "--advertise-client-urls=http://0.0.0.0:2379", "--listen-client-urls=http://0.0.0.0:2379"]?

文章来源:https://blog.csdn.net/m0_37570494/article/details/135548381
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。