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

时间:2016-05-23 08:56:20

标签: .net linux docker asp.net-core .net-core

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

我将这个(--server.urls)添加到"命令"中的project.json中。部分, 所以它变成了这样:

"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。

但是当我运行码头时

docker run -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)."

有人知道会发生什么吗?

1 个答案:

答案 0 :(得分:0)

在我看来你的配置是正确的,虽然我在创建一个docker图像之前首先编译了dot net core应用程序,这只是因为dnu恢复可能会很有气质。

这是我写的一个基于使用Dot Net Core API创建Docker容器的博客,这可能有所帮助(尽管它基于RC2):

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