记一次docker-compose映射2222端口的坑
Posted zerchin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次docker-compose映射2222端口的坑相关的知识,希望对你有一定的参考价值。
问题背景
使用docker-compose搭建基于gogs+mysql的个人git仓库,在映射2222:22
端口的时候,报如下错误:
# ./docker-compose up -d
Creating network "gogs_default" with the default driver
Creating gogs_mysql_1 ... done
Creating gogs_gogs_1 ... error
ERROR: for gogs_gogs_1 Cannot create container for service gogs: invalid port specification: "133342"
ERROR: for gogs Cannot create container for service gogs: invalid port specification: "133342"
ERROR: Encountered errors while bringing up the project.
其中docker-compose.yml
部分配置如下:
services:
gogs:
ports:
- 2222:22
问题原因
YAML 支持所谓的“以60为底的浮点数”,对时间计算很有用。因此2222:22
被解释为2222 * 60 + 22
,即133342。如果port包含大于60的数字,例如3306:3306
或8080:80
,就没有问题,因此不会总是发生此问题,从而使其隐蔽。
问题解决
使用双引号即可,如下:
services:
gogs:
ports:
- "2222:22"
以上是关于记一次docker-compose映射2222端口的坑的主要内容,如果未能解决你的问题,请参考以下文章
杂谈3-docker compose 启动容器失败(端口被占用)
记一次阿里云服务器因Redis被挖矿病毒crypto和pnscan攻击的case,附带解决方案