使用Docker构建与运行
介绍如何使用Docker构建和运行节点。
为了方便运维和管理,很多用户选择在容器化的环境中运行节点,包括Docker Compose以及Kubernetes等。MVC同样提供了Docker镜像的构建和下载,方便用户使用容器化的环境来安装和部署节点软件。
使用Docker还可以在非Ubuntu系统上运行节点,比如macOS和Windows系统。
构建Docker镜像
本章介绍如何从源码自行构建节点镜像,如果你希望直接拉取公共镜像仓库使用,可以直接跳过这部分内容。
Docker镜像的定义文件Dockerfile位于 mvc-dockerfile
项目中,你可以随时查阅源码。它从ubuntu:20.04
基础镜像构建,安装了节点软件的依赖库和运行环境,然后下载二进制文件和默认配置,并执行docker build
。
构建镜像对系统没有要求,只要能够运行docker并且执行bash脚本即可。这里所有测试在macos(arm chips)和ubuntu 20.04 LTS上通过。但是节点软件只能在x86架构的机器上运行。
首先clone项目到本地:
git clone https://github.com/mvc-labs/mvc-dockerfile.git
cd mvc-dockerfile
然后执行构建命令:
bash docker-build.bash
脚本默认会下载构建并构建最新版本,如果你希望构建旧版本的节点软件,可以使用如下命令指定版本号.
注意,打包镜像使用的默认mvc.conf 是代码仓库中的配置文件,如果你需要修改配置文件,可以在构建之前修改配置文件。当然也可以在运行容器的时候指定配置文件。
bash docker-build.bash v0.2.0.0
你还可以将构建好的镜像打上latest标签,方便后续使用。
docker tag microvisionchain:v0.2.0.0 microvisionchain:latest
构建完成后,你可以使用docker images
查看构建的镜像:
docker images
可以看到如下输出:
REPOSITORY TAG IMAGE ID CREATED SIZE
microvisionchain v0.2.0.0 35630de7b95e 22 minutes ago 967MB
表示构建成功,你可以直接在本地使用这个镜像来运行节点,或者根据你的需求将镜像推送到远端仓库进行管理。
从公开仓库拉取Docker容器
你可以根据上文的构建步骤构建Docker镜像,也可以直接拉取我们构建好的镜像。MVC labs还提供免费公开的ECR镜像仓库可供直接拉取构建好的镜像,方便用户快速部署节点。
# 拉取最新版本
docker pull public.ecr.aws/h8c8i3v2/microvisionchain:latest
# 打上latest标签
docker tag public.ecr.aws/h8c8i3v2/microvisionchain:latest microvisionchain:latest
成功后,你可以使用docker images
查看拉取的镜像:
REPOSITORY TAG IMAGE ID CREATED SIZE
microvisionchain latest 35630de7b95e 2 hours ago 967MB
public.ecr.aws/h8c8i3v2/microvisionchain latest 35630de7b95e 2 hours ago 967MB
public.ecr.aws/h8c8i3v2/microvisionchain v0.2.0.0 35630de7b95e 2 hours ago 967MB