如何在云服务上通过docker部署服务?

如何在云服务上通过docker部署服务?

  • 一、在云服务器上安装Docker
    • 1、查看云服务器的OS信息
    • 2、[安装Docker并使用(Linux)](https://help.aliyun.com/zh/ecs/use-cases/deploy-and-use-docker-on-alibaba-cloud-linux-2-instances)
  • 二、通过docker部署服务
    • 1、将本地的Docker镜像推送到Docker的仓库
      • 1.1 [创建Docker仓库](https://hub.docker.com/repository/create)
      • 1.2 登录本地的docker desktop,并推送镜像到远程
    • 2、在云服务器的终端执行docker run
      • 2.1 如何在macOS上生成linux/x86_64的镜像?
      • 2.2 在云服务的终端重新执行docker run
      • 2.3 在云服务上开放8080端口
      • 2.4 在本机的浏览器中验证

前提:如何购买并使用阿里云的云服务器?

一、在云服务器上安装Docker

1、查看云服务器的OS信息

买云服务器的时候,咱选择过OS,但咱还是通过命令行的方式再查看下。

  • cat /etc/os-release
    如何在云服务上通过docker部署服务?_第1张图片

2、安装Docker并使用(Linux)

  • (1)运行以下命令,添加docker-ce的dnf源:
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • (2)运行以下命令,安装Alibaba Cloud Linux 3专用的dnf源兼容插件。
sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
  • (3)运行以下命令,安装Docker。
sudo dnf -y install docker-ce --nobest
  • (4)sudo docker -v
    在这里插入图片描述
  • (5)执行以下命令,启动Docker服务,并设置开机自启动。
sudo systemctl start docker
sudo systemctl enable docker
  • (6)执行以下命令,查看Docker是否启动。
sudo systemctl status docker

在这里插入图片描述

二、通过docker部署服务

1、将本地的Docker镜像推送到Docker的仓库

1.1 创建Docker仓库

如何在云服务上通过docker部署服务?_第2张图片

(1)即使有魔法,也可能因为网络原因导致无法创建…过一段时间,又自然好了~
(2)注意:由于Namespace为forrest0721,因此,docker build时,也要写成forrest0721/chatgpt-api
(3)用Public,而不是Private

1.2 登录本地的docker desktop,并推送镜像到远程

  • 如果登录不上,看:解决docker desktop 登录不上账号的问题
  • 登录后,推送镜像:
  • 推送成功:
    如何在云服务上通过docker部署服务?_第3张图片

2、在云服务器的终端执行docker run

  • 命令:
docker run -p 8080:8080 \
--name chatgpt-api \
-d forrest0721/chatgpt-api

报错:docker: no matching manifest for linux/amd64 in the manifest list entries.

  • 原因:
    • macOS(m2 pro芯片)生成的镜像的OS/ARCH为:linux/arm64
    • 而我云服务器的OS/ARCH为:linux/x86_64

在这里插入图片描述

2.1 如何在macOS上生成linux/x86_64的镜像?

Docker引入了一个名为buildx的实验性功能,它支持跨平台构建,这意味着可以在一个平台(例如macOS)上为另一个平台(例如linux/x86_64)构建Docker镜像。

  • 我macOS上的docker版本:Docker version 24.0.7

比较老的docker版本估计用不了buildx

  • 步骤:

(1)创建一个新的构建器实例

docker buildx create --use

在这里插入图片描述
(2)使构建器实例进入准备就绪状态

docker buildx inspect --bootstrap

在这里插入图片描述
(3)构建适用于linux/x86_64平台的Docker镜像

docker buildx build --platform linux/x86_64 -t forrest0721/chatgpt-api . --push

虽然显示的还是linux/arm64,但能在云服务上run起来了。
如何在云服务上通过docker部署服务?_第4张图片

2.2 在云服务的终端重新执行docker run

docker run -p 8080:8080 \
--name chatgpt-api \
-d forrest0721/chatgpt-api

2.3 在云服务上开放8080端口

  • 实例-加入安全组:
    如何在云服务上通过docker部署服务?_第5张图片
  • 安全组-管理规则:
    如何在云服务上通过docker部署服务?_第6张图片
    在这里插入图片描述

2.4 在本机的浏览器中验证

  • 输入:公网ip:8080/verify?token=xxx
    在这里插入图片描述

你可能感兴趣的:(docker,docker,阿里云服务器)