成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

銀河麒麟V10使用Docker方式部署應用

運維
本文將介紹使用 Docker 的方式在銀河麒麟 V10 服務器進行應用的部署。在銀河麒麟上部署應用有兩種方式:使用二進制文件編譯部署和使用 Docker 。

現在越來越多的企業級應用需要運行在國產化環境中,而銀河麒麟 V10 是目前我碰到的最常用的服務器,在銀河麒麟上部署應用有兩種方式:使用二進制文件編譯部署和使用 Docker 。

如果客戶允許使用 Docker,那可以更方便、快速進行部署了。

本文將介紹使用 Docker 的方式在銀河麒麟 V10 服務器進行應用的部署。

可以使用下面命令查看服務器環境:

uname -a
hostnamectl

需要安裝的組件

  • 服務器已經安裝 Docker ,還需要安裝 docker-compose
  • 中間件包括 Nginx、Redis、Mysql、Rabbitmq、MongoDB
  • .NET 8 的相關處理

docker-compose

在下面地址下載相應的安裝包:

https://github.com/docker/compose/releases

將安裝包放到服務器 /root 目錄,然后執行下面命令進行安裝:

cp docker-compose-linux-aarch64  /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

安裝完后,執行 docker-compose -v 查看版本號,能正常顯示說明安裝成功。

Redis、MySQL、RabbitMQ

根據驗證發現中間件的 Docker 鏡像有的可以直接拉取就可以,有的需要使用 arm64 版本的鏡像,比如:

  • Redis、MySql、RabbitMQ 可以直接拉取
  • MongoDB、Nginx 需要用 arm64 版本

Redis、MySql、RabbitMQ 在 docker-compose.yml 文件中的配置如下:

s2mysql:
  restart: always
  image: mysql:8.0
  ports:
    - "13306:3306"
  environment:
    - TZ=Asia/Shanghai
    - MYSQL_ROOT_PASSWORD=xxxxxx
  volumes:
    - ./config/mysql:/docker-entrypoint-initdb.d/
  command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --default-authentication-plugin=mysql_native_password
  networks:
   s2_net:
    ipv4_address: 172.66.9.2
    
 s2redis:
  restart: always
  image: redis:6.2.14
  environment:
    - TZ=Asia/Shanghai
  volumes:
    - ./config/redis/redis.conf:/etc/redis/redis.conf
  command: redis-server /etc/redis/redis.conf
  networks:
   s2_net:
    ipv4_address: 172.66.9.9

 s2mq:
  restart: always
  image: rabbitmq:3.8.2-management
  environment:
    - TZ=Asia/Shanghai
  networks:
   s2_net:
    ipv4_address: 172.66.9.8

奇怪的是,這些中間件的鏡像中都有提供 arm 的版本,拿 Redis 來說,如下圖:

可能直接使用 docker pull redis:6.2.14 拉取到的鏡像是兼容版本,因為看鏡像大小,直接拉取的又 146MB ,特定版本只有幾十MB 。

MongoDB、Nginx

Nginx

以 Nginx 為例來看如何進行特定版本的拉取。

訪問 https://hub.docker.com/_/nginx/tags?page=&page_size=&ordering=&name=1.25.4 ,進入到 Nginx 的 1.25.4 版本的頁面。

點擊前面的鏈接進入詳細頁面。

復制 index digest ,拼接到 docker pull 的后面,最終的拉取鏡像的命令如下:

docker pull nginx:1.25.4@sha256:b72dad1d013c5e4c4fb817f884aa163287bf147482562f12c56368ca1c2a3705

拉取下來的鏡像是沒有 tag 的。

可以使用 docker tag 命令進行 tag 設置或直接使用鏡像 ID ,前端構建的 Dockerfile 文件內容如下:

FROM 070027a3cbe0
COPY . /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

MongoDB

拉取特定版本鏡像的方式和上面 Nginx 一樣。

需要主要的是在銀河麒麟V10 系統中,對 MongoDB 的版本是有要求的 ,一開始使用 MongoDB 5.0 鏡像,容器運行失敗,錯誤日志如下:

WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that! applies to all versions ≥5.0, any of 4.4 ≥4.4.19 see https://jira.mongodb.org/browse/SERVER-71772 see https://jira.mongodb.org/browse/SERVER-55178 see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306

上面的意思指的是不能使用大于等于 5.0 的版本,如果是使用版本 4 ,不能大于 4.4.19 。

最后拉取了 4.2.24 ,終于運行成功了。

docker pull mongo:4.2.24@sha256:699d652ed67423d689258bad7b316cf005dfbb82b334118ec306f049042f3717

MongoDB 的 docker-compose.yml 配置如下:

mongo:
  restart: always
  image: 97e328c342e0
  environment: 
    - TZ=Asia/Shanghai
  networks:
   s2_net:
    ipv4_address: 172.66.9.7

.NET 8

正常情況下,拉取 .NET 8 對應的鏡像用來做應用的基礎鏡像即可。.NET 8 的鏡像地址如下:

https://hub.docker.com/_/microsoft-dotnet-aspnet/

通過上圖可以發現,.NET 6 和 .NET 7 都有支持 Debian 11 的版本,但 .NET 8 只有 Debian 12。銀河麒麟 V10 的內核是 Debian 11 ,而你恰巧又用的是  .NET 8 ,那暫時還沒有辦法使用 Docker 的方式部署,只能直接在服務器上安裝 .NET 8 環境。

安裝依賴:

yum install gmp-devel mpfr-devel libmpc-devel -y

執行下面命令安裝:

wget https://download.visualstudio.microsoft.com/download/pr/1e449990-2934-47ee-97fb-b78f0e587c98/1c92c33593932f7a86efa5aff18960ed/dotnet-sdk-8.0.204-linux-arm64.tar.gz

mkdir -p /opt/dotnet
tar -zxvf dotnet-sdk-8.0.204-linux-arm64.tar.gz -C /opt/dotnet

ln -s /opt/dotnet/dotnet /usr/bin
export DOTNET_ROOT=/opt/dotnet
export PATH=$PATH:/opt/dotnet

執行命令  dotnet --info 進行驗證,出現下面結果表示安裝成功:

.NET SDK:
 Version:           8.0.204
 Commit:            c338c7548c
 Workload version:  8.0.200-manifests.9f663350

運行時環境:
 OS Name:     kylin
 OS Version:  V10
 OS Platform: Linux
 RID:         linux-arm64
 Base Path:   /opt/dotnet/sdk/8.0.204/

已安裝 .NET 工作負載:
沒有要顯示的已安裝工作負載。

Host:
  Version:      8.0.4
  Architecture: arm64
  Commit:       2d7eea2529

.NET SDKs installed:
  8.0.204 [/opt/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.4 [/opt/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.4 [/opt/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download
責任編輯:姜華 來源: 不止dotNET
相關推薦

2020-08-21 18:05:50

國產操作系統銀河麒麟操作系統

2021-09-22 12:13:49

銀河麒麟操作系統西藏

2015-10-28 14:40:44

LG

2022-11-11 18:05:20

服務器

2020-08-18 09:40:52

操作系統Android 芯片

2015-10-28 15:15:29

LG

2024-07-30 14:18:12

2024-06-20 13:48:18

2015-10-27 14:53:14

LG

2015-10-29 11:39:47

LG
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级a性色生活片久久毛片 一级特黄a大片 | 天天色天天射天天干 | 国产精品成人一区二区三区 | 国产欧美一区二区三区另类精品 | 日韩影院在线 | 国产视频第一页 | 成人免费共享视频 | 欧美性久久 | 妞干网av | 一级a爱片久久毛片 | 天堂网中文字幕在线观看 | 国产国语精品 | 欧美日韩国产精品一区 | 天堂资源最新在线 | 中文字幕精品一区 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 夜操| 久久久久久久久淑女av国产精品 | 欧美日韩精品影院 | 日韩一区二区三区在线观看视频 | 国产专区在线 | 久久久九九 | 狠狠干天天干 | 久久国产欧美一区二区三区精品 | 久久亚洲国产 | 久久久91精品国产一区二区三区 | 国产免费观看一级国产 | 亚洲综合资源 | 国产91精品网站 | 亚洲精品免费在线 | 国产欧美日韩一区 | 久久国产精品久久 | 在线免费观看毛片 | 热久色| 91久久久www播放日本观看 | 91久久综合 | 日本不卡一区二区三区 | 91在线精品秘密一区二区 | 亚洲国产精品成人久久久 | 99热视 | 国产精品免费一区二区三区四区 |