.net core程序发布到Docker
近日,领导要求把目前的.net core程序发布到Docker上,于是基于之前的学习然后摸着石头过河,特别把重要的核心内容记录一下。
1.端口
网关:13021
API:13022
WEB:13023
2.Dockerfile
2.1前端web
FROM 192.168.103.136/library/gd/angular:5.2 AS base
WORKDIR /app
EXPOSE 80
COPY . /app
COPY ./nginx.conf /etc/nginx
RUN rm -rf /app/nginx.conf
2.2GDNP
FROM 192.168.103.136/library/gd/dotnet/aspnet:2.2 AS base
# FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
COPY . /app
ENTRYPOINT ["dotnet", "GD.NP.ServicesHost.dll"]
2.3API
FROM 192.168.103.136/library/gd/dotnet/aspnet:2.2 AS base
# FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
COPY . /app
ENTRYPOINT ["dotnet", "BDCQYTB.Server.ServicesHost.dll"]
3.发布
2.1前端web
-
构建镜像
# 需要进入到目录:/usr/src/gdsoft/10002_bdcqytb/QYTB_WEB docker build -t qytb_web .
-
创建容器
docker run -d -p 03023:80 --name qytb_web qytb_web
-
浏览器输入地址测试:http://192.168.103.140:03023/
-
删除所有
docker rm -f qytb_web docker rmi qytb_web
2.2GDNP
-
构建镜像
# 需要进入到目录:/usr/src/gdsoft/10002_bdcqytb/QYTB_GDNP docker build -t qytb_gdnp .
-
创建容器
docker run -d -p 03021:80 --name qytb_gdnp qytb_gdnp -v /etc/localtime:/etc/localtime -e TZ=Asia/Shanghai
-
浏览器输入地址测试:http://192.168.103.140:03021/
-
删除所有
docker rm -f qytb_gdnp docker rmi qytb_gdnp
2.3API
-
构建镜像
# 需要进入到目录:/usr/src/gdsoft/10002_bdcqytb/QYTB_API docker build -t qytb_api .
-
创建容器
docker run -d -p 03022:80 --name qytb_api qytb_api -v /etc/localtime:/etc/localtime -e TZ=Asia/Shanghai docker run -d -p 03022:80 --rm --privileged --name qytb_api qytb_api
-
浏览器输入地址测试:http://192.168.103.140:03022/
-
删除所有
docker rm -f qytb_api docker rmi qytb_api
YAML文件
version: '3'
services:
# 应用网关配置
qytb_gdnp:
build: ./QYTB_GDNP
container_name: qytb_gdnp
restart: always
ports:
- 13021:80
network_mode: bridge
# 业务API配置
qytb_api:
build: ./QYTB_API
container_name: qytb_api
restart: always
ports:
- 13022:80
network_mode: bridge
# 业务网站配置
qytb_web:
build: ./QYTB_WEB
container_name: qytb_web
restart: always
ports:
- 13023:80
network_mode: bridge
4.备注
4.1常用命令和参数
- Linux地址:192.168.103.140
- 基础研发部搭建的dockerhub:https://192.168.103.136/
- 文件存放路径:/usr/src/gdsoft/10002_bdcqytb
- nginx路径:/etc/nginx/nginx.conf
- 删除容器:docker rm -f qytb_web
- 删除镜像:docker rmi qytb_web
- 进入容器:docker exec -it qytb_web /bin/bash
4.2防火墙开启端口
# 宿主机开启端口
firewall-cmd --permanent --zone=public --add-port=13021/tcp
firewall-cmd --permanent --zone=public --add-port=13022/tcp
firewall-cmd --permanent --zone=public --add-port=13023/tcp
firewall-cmd --reload
4.3产品编号
全豫通办办理:03020 qytb
司法查控总对总:03021 sfckzdz
税务总对总:03022 swzdz
动态质量监管系统:03023 bdcdjsjdtjgxt
4.4DockerCompose
- docker-compose up 创建镜像、创建容器、启动容器
- docker-compose up -d 创建镜像、创建容器、启动容器(后台)
- docker-compose ps 列出项目中目前所有的容器
- docker-compose start 启动已经存在的服务容器
- docker-compose stop 停止正在运行的容器,可以通过docker-compose start 再次启动
- docker-compose down 停止和删除容器、网络、卷、镜像