Docker Container已退出,状态码为255

时间:2020-06-29 14:29:18

标签: docker ubuntu docker-compose

docker-compose.yml

version: '3'
services:
        jenkins:
                container_name: jenkins     
                image: jenkins/jenkins 
                ports: 
                        - "8080:8080"
                volumes: 
                        - "$PWD/jenkins_home:/var/jenkins_home"
                networks:
                        - net
        remote_host:
                container_name: remote-host
                image: remote-host
                build: 
                        context: ubuntu_container
                networks:
                        - net
networks:
        net:  

Dockerfile

FROM ubuntu:20.04

RUN apt-get update && apt-get install -y openssh-server

RUN useradd -ms /bin/bash remote_user && \
    echo  'remote_user:<password>' | chpasswd && \
    mkdir /home/remote_user/.ssh && \ 
    chmod 700 /home/remote_user/.ssh

COPY remote-key.pub /home/remote_user/.ssh/authorized_keys
RUN chown remote_user:remote_user -R /home/remote_user/.ssh && \
    chmod 600 /home/remote_user/.ssh/authorized_keys

RUN ssh-keygen -A


CMD /usr/sbin/sshd -D

$ docker-compose build的输出

Building remote_host
Step 1/7 : FROM ubuntu:20.04
 ---> 74435f89ab78
Step 2/7 : RUN apt-get update && apt-get install -y openssh-server
 ---> Using cache
 ---> dfaef48ff3df
Step 3/7 : RUN useradd -ms /bin/bash remote_user &&     echo  'remote_user:root123' | chpasswd &&   mkdir /home/remote_user/.ssh &&     chmod 700 /home/remote_user/.ssh
 ---> Using cache
 ---> 978387042c0f
Step 4/7 : COPY remote-key.pub /home/remote_user/.ssh/authorized_keys
 ---> Using cache
 ---> d5bc890cc4c1
Step 5/7 : RUN chown remote_user:remote_user -R /home/remote_user/.ssh &&   chmod 600 /home/remote_user/.ssh/authorized_keys
 ---> Using cache
 ---> 0a99e09c02aa
Step 6/7 : RUN ssh-keygen -A
 ---> Using cache
 ---> 8ed7cac699d5
Step 7/7 : CMD /usr/sbin/sshd -D
 ---> Running in de3b02ee7c10
Removing intermediate container de3b02ee7c10
 ---> 64eee00b5a0f
Successfully built 64eee00b5a0f
Successfully tagged remote-host:latest

$ docker-compose up -d

的输出
Recreating remote-host ... done

$ docker ps -a的输出

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS                               NAMES
2cb7f0c7f6b0        remote-host         "/bin/sh -c '/usr/sb…"   13 seconds ago      Exited (255) 9 seconds ago                                         remote-host

我的容器已经成功构建并创建,但退出状态代码为255。请您帮我解决这个问题

2 个答案:

答案 0 :(得分:0)

使用这样的docker-compose文件来映射主机docker.sock:

version: '3'
services:
    jenkins:
            container_name: jenkins     
            image: jenkins/jenkins 
            privileged: true
            ports: 
               - "8080:8080"
            volumes: 
               - /var/run/docker.sock:/var/run/docker.sock
               - "$PWD/jenkins_home:/var/jenkins_home"
            networks:
               - net
    remote_host:
            container_name: remote-host
            image: remote-host
            build: 
                context: ubuntu_container
            networks:
                - net
networks:
    net: 

答案 1 :(得分:0)

通过在docker-composer.yml文件中添加端口详细信息,我可以启动容器。因此,我在remote_host下添加了一行:说端口:“ 8081:8081”。或者我们可以使用EXPOSE PORT 22来做到这一点,因为sshd使用22作为默认端口