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

Posted 李斌的BLOG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于docker-compose 部署 ubuntu 镜像 port 端口不生效的主要内容,如果未能解决你的问题,请参考以下文章

Docker+Docker-compose部署Springboot项目-前后端分离

使用docker-compose部署最新版Harbor v2.3.2

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

DockerFile + Docker-Compose

在 ubuntu 20.04 上部署 docker 容器到 swarm 时出现 br_netfilter 错误

linux12企业实战 -- 12ubuntu部署K8s集群