docker-compose 部署 ubuntu 镜像 port 端口不生效

编写了一个 docker-compose 用于部署 ubuntu 镜像。

出现了一个很怪的问题:当我 run 容器的时候,映射的端口是生效的。但是当我用 docker-compose 把命令编在一起的时候,用 docker-composer up -d 端口不生效。

我先用 docker logs {container_id} 试图查看错误日志,发现日志为空。

查阅资料后,发现要用以下命令启动,可以查到到错误。

docker-compose up --build

得到的报错信息如下:

ubuntu20 exited with code 0

可以得到报错原因是:

docker容器执行任务完成后就会处于exited状态

解决方案如下:

docker-compose 文件中加入以下参数:

stdin_open: true
tty: true

其中 stdin_open 相当于 run 命令中的 -d,其中 tty 相当于 run 命令中的 -i

最终形成的docker-compose文件如下:

下载地址: https://github.com/jefferywork/docker-vhost

version: "3.8"

services:

  # Ubuntu-20 配置
  ubuntu20:
    image: ubuntu:20.10
    container_name: ${UBUNTU20_NAME}
    ports:
        - "${UBUNTU20_PORT}:22"
    volumes:
        - ${UBUNTU20_HOME}:/home # 数据配置
        - ./docker-compose/ubuntu:/docker-compose # 系统配置
    working_dir: /home
    networks:
        - vhost-net
    command: 
        - "bash"
    restart: always
    privileged: true
    stdin_open: true
    tty: true

# 网络配置
networks:
    vhost-net:
       driver: bridge
  

知识连接:

https://stackoverflow.com/questions/44884719/exited-with-code-0-docker

https://www.opsask.com/post/18151/docker-compose-env-port-duankou.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汀风说后端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值