第一步:下载nginx镜像“docker pull nginx”,等待下载完成。
第二步,运行镜像生成对应容器netcore31(名字随意),“docker run -it --name=netcore31 -p 8003:80 -v D:\iis\api:/usr/share/nginx/html nginx bash”,这里稍微解释一下:
1、-it和最后个命令bash创建之后进入容器,而加上d就是后台运行不会自动进入容器;
2、-p 8003:80 宿主机端口是8003,容器端口是80,也就是宿主机ip+8003就能映射到容器里面的80端口;
3、-v D:\iis\api:/usr/share/nginx/html nginx,其中D:\iis\api是宿主机(我用的是windows)的路径,/usr/share/nginx/html容器里面的路径。
4、测试http://localhost:8003/出现nginx的字样就行了。
第三步,安装dotnetcore31
a、注册 Microsoft 密钥和源,注意这里可能会遇到如下图情况command not found,那么用apt-get install xx;而如果install的时候遇到unable to locate package,就用apt-get update,
然后再继续install
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
b、安装dotnet core 3.1,分别输入以下命令等待完成。
apt-get
install apt-transport-https
apt-
get
update
apt-get
install dotnet-sdk-3.1
第四步,配置并运行。
a、进入对应的路径cd usr/share/nginx/html/,然后测试运行dotnet xxx.dll &,后面有个“&”,成功运行后默认端口是5000;
b、一会需要修改配置文件,先安装vim“apt-get install vim”,进入配置文件路径“cd etc/nginx/conf.d/”,然后编辑文件vim default.conf,再shift+i编辑文件,然后Esc,shift+: ,wq 保存退出。
c、然后重新加载,nginx -t 和nginx -s reload
d、再次测试http://localhost:8003/swagger/index.html,刚刚出现个404,重启容器重启服务就好了。docker stop netcore31\docker start netcore31\dotnet xx.dll &\service nginx start
server {
listen 80;
location / {
proxy_pass http://localhost:5000; # 监听 5000 端口,因为 DotNet 默认端口是 5000
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}