docker-easyconnect icon indicating copy to clipboard operation
docker-easyconnect copied to clipboard

docker 重启 docker-easyconnect 的端口会丢失

Open songpeng154 opened this issue 1 year ago • 9 comments

docker 重启 docker-easyconnect 的端口会丢失 image

songpeng154 avatar Jul 28 '23 08:07 songpeng154

没用过 docker desktop,猜测是操作上的问题

Hagb avatar Jul 28 '23 09:07 Hagb

docker 重启 docker-easyconnect 的端口会丢失 image

能描述一下你是怎么重启的吗?

Einskai avatar Aug 02 '23 01:08 Einskai

docker 重启 docker-easyconnect 的端口会丢失图像

能描述一下你是怎么重启的吗?

就是右键小鲸鱼图标,有一个重启的按钮,点重启后,docker-easyconnect的端口会丢失

songpeng154 avatar Aug 04 '23 00:08 songpeng154

docker 重启 docker-easyconnect 的端口会丢失图像

能描述一下你是怎么重启的吗?

就是右键小鲸鱼图标,有一个重启的按钮,点重启后,docker-easyconnect的端口会丢失

有可能是docker-desktop的配置不太对?或者是docker-desktop出BUG了?方便试试其他有端口暴露出来的docker项目用类似的操作会不会也出现端口丢失的问题吗? 例如这个https://github.com/dnomd343/kms-server

Einskai avatar Aug 04 '23 01:08 Einskai

docker 重启 docker-easyconnect 的端口会丢失图像

能描述一下你是怎么重启的吗?

就是右键小鲸鱼图标,有一个重启的按钮,点重启后,docker-easyconnect的端口会丢失

有可能是docker-desktop的配置不太对?或者是docker-desktop出BUG了?方便试试其他有端口暴露出来的docker项目用类似的操作会不会也出现端口丢失的问题吗? 例如这个https://github.com/dnomd343/kms-server

1691138638544 1691138702664 重启后,kms服务的端口还在

songpeng154 avatar Aug 04 '23 08:08 songpeng154

docker 重启 docker-easyconnect 的端口会丢失图像

能描述一下你是怎么重启的吗?

就是右键小鲸鱼图标,有一个重启的按钮,点重启后,docker-easyconnect的端口会丢失

有可能是docker-desktop的配置不太对?或者是docker-desktop出BUG了?方便试试其他有端口暴露出来的docker项目用类似的操作会不会也出现端口丢失的问题吗? 例如这个https://github.com/dnomd343/kms-server

1691138835554 启动的时候提示此镜像没有默认端口,我该如何设置默认端口呢?

songpeng154 avatar Aug 04 '23 08:08 songpeng154

1691138835554 启动的时候提示此镜像没有默认端口,我该如何设置默认端口呢?

我好像明白了,在 Dockerfile 中可以用 EXPOSE 命令“指定”容器要开放的端口(只是充当文档的作用)。我想 docker desktop 可能默认把 EXPOSE 指定的端口开放了,这个界面显示的应该也是 EXPOSE 指定的端口。

Hagb avatar Aug 04 '23 14:08 Hagb

就是右键小鲸鱼图标,有一个重启的按钮,点重启后,docker-easyconnect的端口会丢失

@thikiiii 我自己装了 docker desktop 测试了一下,现在我好像明白怎么回事了。那个重启按钮是重启整个 docker,而不是单独一个容器吧。 你是不是 docker run 里面带了 --rm?如果是的话,容器(container)关闭之后会自动删除,而重启 docker 的时候会关闭容器从而使得容器被删除。而你重启之后是不是从镜像(image)那儿点击启动按钮来运行容器?这样它就会创建一个新容器,默认没做端口映射了。

你可以把 --rm 参数给删掉,这样容器就不会随着 docker 关闭而删除了,而 docker 启动之后你也可以继续在容器(container)界面来重新启动以前旧的容器(端口映射等等设置也会保留下来),而不是在镜像那儿启动一个新的容器。

另外我不太想在 EXPOSE 里面指定容器可用的端口,因为在很多情形下这些端口不是暴露出来使用的(而是只允许宿主机访问,bind 到 127.0.0.1),只有当确保当前网络可信任的情况下才适宜暴露出来使用。但 docker 配合 EXPOSE 使用的主要是 -P--publish-all)参数,它会把所有 EXPOSE 指定的端口都暴露在外(bind 到 0.0.0.0::),而且据我所知,除了逐个端口进行设置也没有简便的办法来让它 bind 到 127.0.0.1(如果有请告诉我)。

Hagb avatar Aug 04 '23 16:08 Hagb

就是右键小鲸鱼图标,有一个重启的按钮,点重启后,docker-easyconnect的端口会丢失

@thikiiii 我自己装了 docker desktop 测试了一下,现在我好像明白怎么回事了。那个重启按钮是重启整个 docker,而不是单独一个容器吧。 你是不是 docker run 里面带了 --rm?如果是的话,容器(container)关闭之后会自动删除,而重启 docker 的时候会关闭容器从而使得容器被删除。而你重启之后是不是从镜像(image)那儿点击启动按钮来运行容器?这样它就会创建一个新容器,默认没做端口映射了。

你可以把 --rm 参数给删掉,这样容器就不会随着 docker 关闭而删除了,而 docker 启动之后你也可以继续在容器(container)界面来重新启动以前旧的容器(端口映射等等设置也会保留下来),而不是在镜像那儿启动一个新的容器。

另外我不太想在 EXPOSE 里面指定容器可用的端口,因为在很多情形下这些端口不是暴露出来使用的(而是只允许宿主机访问,bind 到 127.0.0.1),只有当确保当前网络可信任的情况下才适宜暴露出来使用。但 docker 配合 EXPOSE 使用的主要是 -P--publish-all)参数,它会把所有 EXPOSE 指定的端口都暴露在外(bind 到 0.0.0.0::),而且据我所知,除了逐个端口进行设置也没有简便的办法来让它 bind 到 127.0.0.1(如果有请告诉我)。

感谢解答,我试一试

songpeng154 avatar Aug 07 '23 00:08 songpeng154