1. 程式人生 > 其它 >.net core程式釋出到Docker

.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

  1. 構建映象

    # 需要進入到目錄:/usr/src/gdsoft/10002_bdcqytb/QYTB_WEB
    docker build -t qytb_web .
    
  2. 建立容器

    docker run -d -p 03023:80 --name qytb_web qytb_web
    
  3. 瀏覽器輸入地址測試:http://192.168.103.140:03023/

  4. 刪除所有

    docker rm -f qytb_web
    docker rmi qytb_web
    

2.2GDNP

  1. 構建映象

    # 需要進入到目錄:/usr/src/gdsoft/10002_bdcqytb/QYTB_GDNP
    docker build -t qytb_gdnp .
    
  2. 建立容器

    docker run -d -p 03021:80 --name qytb_gdnp qytb_gdnp -v /etc/localtime:/etc/localtime -e TZ=Asia/Shanghai
    
  3. 瀏覽器輸入地址測試:http://192.168.103.140:03021/

  4. 刪除所有

    docker rm -f qytb_gdnp
    docker rmi qytb_gdnp
    

2.3API

  1. 構建映象

    # 需要進入到目錄:/usr/src/gdsoft/10002_bdcqytb/QYTB_API
    docker build -t qytb_api .
    
  2. 建立容器

    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
    
  3. 瀏覽器輸入地址測試:http://192.168.103.140:03022/

  4. 刪除所有

    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 停止和刪除容器、網路、卷、映象