上传数据到docker hub镜像站

272 阅读2分钟

最近因为工作需要,需要将一些打包的镜像上传到hub镜像站,这里做一个备份记录。

1、打开docker软件和登录docker hub镜像站

登录docker hub镜像站后,创建一个需要后续上传镜像的仓库。例如我文章后面需要上传一个自己打包的r-maftools镜像。我就创建一个名为r-maftools的仓库。

89611ef4126980c7e8aab7b77a84ef62.png

QQ_1746609084259.png

2、终端登录docker hub

首先在终端中测试docker是否已经开启。输入docker 查看是否有帮助信息。确认正常后,在终端登录docker hub.

# 解锁MacOS的登录钥匙串
security -v unlock-keychain ~/Library/Keychains/login.keychain-db
# 登录
docker login

image.png

3、打包docker镜像

这里是我使用的Dockerfile文件。

FROM rocker/r-ver

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    zlib1g-dev \
    libbz2-dev \
    liblzma-dev \
    libcurl4-openssl-dev

# 设置镜像源(CRAN + Bioconductor)
RUN echo "options(repos = c(CRAN='https://mirrors.tuna.tsinghua.edu.cn/CRAN/'))" >> ${R_HOME}/etc/Renviron.site && \
    echo "options(BioC_mirror='https://mirrors.westlake.edu.cn/bioconductor')" >> ${R_HOME}/etc/Renviron.site

# 安装依赖包和maftools
RUN R -e "install.packages('BiocManager')" && \
    R -e "BiocManager::install('Rhtslib')" && \
    R -e "BiocManager::install('maftools', force=TRUE)" && \
    R -e "install.packages(c('readxl', 'tools', 'ggplot2', 'dplyr'))"

# 清理缓存
RUN rm -rf /tmp/downloaded_packages/ /tmp/*.rds

CMD ["R"]

生成镜像文件。

# 进入Dockerfile所在的目录
docker build -t r-maftools . 

image.png 查看生成的镜像文件是否包含我所需要的R包。

# 进入交互环境
 docker run -it --rm r-maftools:latest
# 在交互环境中调用R包,查看是否全部安装

确认镜像没有问题后,便可以上传镜像到docker hub地址。

3、上传镜像到docker hub

首先给镜像打tag。

image.png

docker tag r-maftools:latest wangjien/r-maftools:4.5.0

上传打tag后的镜像到docker hub

docker push docker.io/wangjien/r-maftools

image.png

4、确认是否能在docekr hub上查找到

image.png 可以看到已经上传成功了。

5、删除本地的镜像

确认上传成功后,可以删除本地的镜像。查看需要删除的镜像。 image.png 删除镜像。

docker rmi r-maftools:latest
docker rmi wangjien/r-maftools:4.5.0