我是docker的新手,需要将jar文件部署到docker中。所以我已经实现了“Hellow World”程序并尝试按如下方式创建容器,但是在调用它时出现“curl: (56) Recv failure: Connection reset by peer
”错误。
请帮助我,我已经为此工作了4天。
Dockerfile:
##### Version: 0.0.1
FROM ubuntu:14.04
MAINTAINER Siva "siva@example.com"
RUN apt-get update
#### installing JDK
RUN apt-get install -y openjdk-7-jdk
ADD dockertest.jar /usr/share/java/
EXPOSE 8089
构建命令:
sudo docker build -t="img33/img33" .
从图像中启动容器:
sudo docker run -it -p 80 --name imgcon33 img33/img33
供参考
docker@boot2docker:~/jardeploy$ sudo docker build -t="img33/img33" .
Successfully built f602b747548a
docker@boot2docker:~/jardeploy$ sudo docker run -it -p 80 --name imgcon33 img33/img33
root@21df09a79175:/# exit
docker@boot2docker:~/jardeploy$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21df09a79175 img33/img33:latest "/bin/bash" 14 seconds ago Exited (0) 9 seconds ago imgcon33
docker@boot2docker:~/jardeploy$ docker start 21df09a79175
21df09a79175
docker@boot2docker:~/jardeploy$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21df09a79175 img33/img33:latest "/bin/bash" 29 seconds ago Up 3 seconds 8080/tcp, 0.0.0.0:49231->80/tcp imgcon33
docker@boot2docker:~/jardeploy$ curl localhost:49231
curl: (56) Recv failure: Connection reset by peer
答案 0 :(得分:0)
您没有定义用于进行连接的端口,并且boot2docker将端口80映射到范围49153到65535的第一个空闲高端端口(请参阅如何执行in boot2docker和docker)。 / p>
这是适用于我的设置(虽然在Windows上,但对于OSX也是如此),我已将您的应用程序映射到端口8000,请随时更改它:
c:\>boot2docker init
Virtual machine boot2docker-vm already exists
c:\>boot2docker up
Waiting for VM and Docker daemon to start...
..........ooo
Started.
Writing C:\Users\xyz\.boot2docker\certs\boot2docker-vm\ca.pem
Writing C:\Users\xyz\.boot2docker\certs\boot2docker-vm\cert.pem
Writing C:\Users\xyz\.boot2docker\certs\boot2docker-vm\key.pem
Docker client does not run on Windows for now. Please use
"boot2docker.exe" ssh
to SSH into the VM instead.
c:\>boot2docker ssh -L 0.0.0.0:8000:localhost:8000
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.3.2, build master : 495c19a - Mon Nov 24 20:40:58 UTC 2014
Docker version 1.3.2, build 39fa2fa
docker@boot2docker:~$ docker run -it -p 0.0.0.0:8000:80 --name imgcon33 img33/img33
此设置映射您的应用程序,如下所示: imgcon33(端口80) - &gt; docker(8000) - &gt; boot2docker(8000) - &gt; localhost(8000)
如果你从boot2docker运行curl,那么就是一个简单的
curl localhost:80
应该足够了。 但是,如果要从主机容器(承载boot2docker的容器)访问您的应用程序,则必须将其作为
运行curl localhost:8000