学会了Dockerfile生成Docker image 之后,如何上传自己的镜像到 DockerHub呢?下面我以自己制作的 bs-cqhttp 镜像为例,演示一下如何将自己的镜像发布到 Docker 仓库。
1 生成自己的 Docker 镜像
1.1 实例镜像用到的文件
镜像需要用到上面的5个文件,请按此目录结构放置好文件,1.2.0版本的文件下载请参考前文:docker安装并跑通QQ机器人实践(4)-bs-cqhttp搭建。
1.2 bs-cqhttp 的 Dockerfile 文件
此镜像在以前的文章讲过,此处就不多解释,内容如下:
# 引用官方的轻量级基础镜像
FROM alpine:3.10
# 定义作者信息
LABEL MAINTAINER="tanbushi@qq.com"
# 设置国内源更新系统、安装 bash
RUN echo "https://mirrors.ustc.edu.cn/alpine/v3.13/main" > /etc/apk/repositories && \
echo "https://mirrors.ustc.edu.cn/alpine/v3.13/community" >> /etc/apk/repositories && \
apk update && apk upgrade && \
apk add tzdata bash && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
# 设置环境变量
ENV WORK_DIR /app/bs-cqhttp
# 设置工作目录
WORKDIR $WORK_DIR
# 拷贝运行时文件(go-cqhttp v1.2.0 内核文件)
COPY ./copy_into_volume /opt/app/bs-cqhttp/copy_into_volume/
COPY entrypoint.sh /root/bs-cqhttp/entrypoint.sh
ENTRYPOINT [ "/bin/bash", "-c", "/root/bs-cqhttp/entrypoint.sh" ]
编译生成 image 文件,命令如下:
docker build -t tanbushi/bs-cqhttp:1.1.0 .
即会生成名为:tanbushi/bs-cqhttp:1.0.0 的镜像文件。
2 镜像发布
首先,需要有 github 账号,怎么注册,自行网查。此处假设您已经有了 github 账号。
2.1 登录 dockerhub
网页访问:https://hub.docker.com/,并登录。
点击创建仓库
选择分类:
2.2 上传到dockerhub
1)打标记
docker tag tanbushi/bs-cqhttp:1.0.0 tanbushi/bs-cqhttp:1.0.0
2)上传
docker push tanbushi/bs-cqhttp:1.0.0
即可完成上传!
3 测试拉取:
docker pull tanbushi/cqhttp:1.0.0
拉取成功!