如何将.net core web api部署到linux机器上

我使用.net核心创build了一个web api应用程序,并且我想用docker部署到linux。 怎么做 ?

我在project.json中的“commands”部分添加了这个(–server.urls),所以变成这样:

"commands": { "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://0.0.0.0:5000", }, 

这是我的dockerfile

 FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr COPY . /app WORKDIR /app RUN ["dnu", "restore"] EXPOSE 5000/tcp ENTRYPOINT ["dnx", "-p", "project.json", "web"] 

我可以使用这个命令docker build -t myapp成功创build一个docker镜像。

但是当我运行docker工人

docker运行-d -t -p 80:5000 myapp,它抛出一个错误

 "Error response from daemon: driver failed programming external connectivity on endpoint kickass_hopper (16d5675978b188131670f391614f7f89b6ec977ae88924ae422a9a9c18768f22): iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 172.17.0.2:5000 ! -i docker0: iptables: No chain/target/match by that name. (exit status 1)." 

有人知道发生了什么?

在我看来,你已经得到了正确的configuration,但是在创buildDocker镜像之前,我首先编译了dot net核心应用程序,只是因为dnu还原可能是令人生气的。

下面是我创build的基于创buildDotNet Core API的Docker容器的博客,虽然它基于RC2,但可能有所帮助:

http://fuzzyduckdev.blogspot.com/2016/07/aspnet-core-apis-with-docker.html