求助,docker mono问题,我的过程是这样:这是我的dockerfile:
#mono
FROM docker.io/asqar/centos-mono:latest
MAINTAINER YD Mr.Wang
RUN touch /mono.log
ADD Release /root/Release
ADD mono.sh /root/
EXPOSE 8889
CMD /root/mono.sh && tail -f /mono.log
这是我的mono.sh:
#!/bin/bash
/usr/bin/mono-service /root/Release/Mfg.Resource.ApiServer.exe > /mono.log 2>&1
然后我创建镜像成功,启动容器也成功
[root@mysql7 jianhaodemono]# docker build -t mono/service .
Removing intermediate container f3992a2caaee
Step 6 : CMD /root/mono.sh && tail -f /mono.log
---> Running in 5c6eeed93fac
---> cafc46df21ee
INFO[518186] -job build() = OK (0)
Removing intermediate container 5c6eeed93fac
Successfully built cafc46df21ee
[root@mysql7 jianhaodemono]# docker images
INFO[518191] GET /v1.18/images/json
INFO[518191] +job images()
INFO[518191] -job images() = OK (0)
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
mono/service latest cafc46df21ee 6 seconds ago 672.2 MB
[root@mysql7 jianhaodemono]# docker run -idt -p 8889:8889 --name monoservice1 mono/service
[root@mysql7 jianhaodemono]# docker ps
INFO[518490] GET /v1.18/containers/json
INFO[518490] +job containers()
INFO[518490] -job containers() = OK (0)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
86a4d79d6926 mono/service:latest "/bin/sh -c '/root/m 4 seconds ago Up 2 seconds 0.0.0.0:8889->8889/tcp monoservice1
然后产看端口,也没问题。我在外面telnet测试也没问题,进到容器里面看也没问题
[root@86a4d79d6926 ~]# ps aux 容器里面
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 11604 1336 ? Ss+ 01:43 0:00 /bin/sh -c /root/mono.sh && tail -f /mono.log
root 7 0.2 2.1 473460 22072 ? Sl+ 01:43 0:00 /usr/bin/mono /usr/lib/mono/4.5/mono-service.exe /root/Release/Mfg.Resource.ApiServer.exe 这是服务
root 8 0.0 0.0 4348 356 ? S+ 01:43 0:00 tail -f /mono.log
root 15 1.0 0.1 11720 1840 ? Ss 01:45 0:00 /bin/bash
root 31 0.0 0.1 19764 1228 ? R+ 01:45 0:00 ps aux
现在问题来了,, 我将这个容器stop,然后在start,容器是成功启动的,但是服务却起不来了。。。
[root@mysql7 jianhaodemono]# docker stop 86a4d79d6926 停止
INFO[518746] -job stop(86a4d79d6926) = OK (0)
86a4d79d6926
查看端口也没了,
[root@mysql7 jianhaodemono]# docker start 86a4d79d6926 现在启动
INFO[518793] -job start(86a4d79d6926) = OK (0)
2015/08/24 09:48:30 http: multiple response.WriteHeader calls
86a4d79d6926
查看端口,端口也有
[root@mysql7 jianhaodemono]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 951/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2198/master
tcp6 0 0 :::3306 :::* LISTEN 2187/mysqld
tcp6 0 0 :::22 :::* LISTEN 951/sshd
tcp6 0 0 :::32792 :::* LISTEN 41041/docker-proxy
tcp6 0 0 :::8889 :::* LISTEN 45261/docker-proxy
tcp6 0 0 ::1:25 :::* LISTEN 2198/master
tcp6 0 0 :::32768 :::* LISTEN 4242/docker-proxy
但是我在外面telnet连接就连接不上了,
我进入容器查看
[root@86a4d79d6926 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 11604 1340 ? Ss+ 01:48 0:00 /bin/sh -c /root/mono.sh && tail -f /mono.log
root 8 0.0 0.0 4348 356 ? S+ 01:48 0:00 tail -f /mono.log
root 10 0.2 0.1 11720 1848 ? Ss 01:49 0:00 /bin/bash
root 26 0.0 0.1 19764 1224 ? R+ 01:49 0:00 ps aux
发现没有那个服务的进程了,而且,这时候在容器里面手动也启动不了,。。。
容器里面产看mono日志
[root@86a4d79d6926 ~]# cat /mono.log 没有任何日志
退出容器之后,查看容器日志:
[root@mysql7 jianhaodemono]# docker logs 86a4d79d6926
INFO[518914] GET /v1.18/containers/86a4d79d6926/json
INFO[518914] +job container_inspect(86a4d79d6926)
INFO[518914] -job container_inspect(86a4d79d6926) = OK (0)
INFO[518914] GET /v1.18/containers/86a4d79d6926/logs?stderr=1&stdout=1&tail=all
INFO[518914] +job container_inspect(86a4d79d6926)
INFO[518914] -job container_inspect(86a4d79d6926) = OK (0)
INFO[518914] +job logs(86a4d79d6926)
INFO[518914] -job logs(86a4d79d6926) = OK (0)
整个过程就是这样。。。求大神解决!!收起