我想在Docker容器中运行防火墙Web应用程序。我对这两种技术都很陌生,所以我开始简单。在Docker上运行生锈:从服务器回复空白
这里是main.rs
:
extern crate iron;
use iron::prelude::*;
use iron::status;
fn main() {
fn hello_world(_: &mut Request) -> IronResult<Response> {
Ok(Response::with((status::Ok, "Hello World!")))
}
Iron::new(hello_world).http("127.0.0.1:8080").unwrap();
}
Cargo.toml
[package]
name = "docker"
version = "0.1.0"
[dependencies]
iron = "*"
Dockerfile
(改编自this教程)
FROM jimmycuadra/rust
EXPOSE 8080
COPY Cargo.toml /source
COPY src/main.rs /source/src/
CMD cargo run
这些是我跑的命令:
docker build -t oror/rust-test
docker run -it -p 8080:8080 --rm -v $(pwd):/source -w /source oror/rust-test cargo run
docker ps
ifconfig
让我的机器的IP地址:192.168.0.6
curl 192.168.0.6:8080
连接到我的铁锈网页应用程序
卷曲:(52)空从服务器
回复我试过localhost:8080
,我仍然会得到相同的输出。 我错过了什么?
您在哪里部署了码头集装箱?你还应该检查你是否真的想要'-p 8080:80'。 –
我将它部署在本地机器上。我试图在没有-p 8080:80'的情况下运行docker容器;码头图像在端口32768上运行。我试图连接到'192.168.0.6:32768',但得到了相同的响应 – OReallyOReily
该端口不需要处理您的服务器,您仍然需要通过端口8080访问它。 –