当前版本:docker版本(比如Docker 17.03.2)
.netcore版本3.1
直接从构建镜像开始了啊.前面的省略
1 构建镜像
程序上传到指定目录之后,创建DockerFile文件,内容如下
创建DockerFile,引入镜像,低版本 docker 去掉 AS base
此处感谢:吕小不
#低版本 docker 去掉 AS base
# 之前我是 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
# 结果一直失败,后来看了别人建议.去掉 AS base就可以了.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
# core运行端口是5000 要暴露出来
ENV ASPNETCORE_URLS http://+:5000
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "TestCoreWeb.dll"]
# 当前版本要加 -f DockerFile 才可以
docker build -t demo-netcore -f DockerFile . #结尾有一个点
这样就构建镜像成功
2 运行镜像
docker run -d -p 6000:5000 demo-netcore
3 访问
容器 | 内部ip | 内部访问 | 外部浏览器访问 |
---|---|---|---|
nginx | 172.17.0.4 | curl http://localhost:80 | http://192.168.0.128:80 |
jar | 172.17.0.3 | curl http://localhost:8080/hello | http://192.168.0.128:8080/hello |
.net core | 172.17.0.2 | curl http://localhost:5000/api/get?id=123 | http://192.168.0.128:5000/api/get?id=123 |
猜测:第一个容器启动ip就是172.17.0.2 再次启动其他容器ip+1 :下一个是172.17.0.3…
进入nginx容器:
docker exec -it 138c0fe73b3c /bin/bash
容器内访问
curl http://localhost
退出容器 在宿主机访问nginx
java 程序
docker exec -it 052ed926eea2 /bin/bash
容器内访问
curl http://localhost:8080/hello