Docker打包镜像(三种方式)并发布到Docker Hub

这篇具有很好参考价值的文章主要介绍了Docker打包镜像(三种方式)并发布到Docker Hub。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

        公司项目发生较大改动(添加表、重要文件备份、自动脚本上传),在原有的项目镜像基础下重新打包生成新的镜像,并发布到Docker Hub上,(注意:以下命令全程管理员操作,非管理员操作则在命令前自行添加sudo)


解决(三种方式):

一、基于docker容器Commit命令打包

二、基于docker快照打包镜像(export导出,import导入命令)

三、基于镜像导出导入(save导出,load导入命令)


一、基于docker容器Commit命令打包

第一步:拉项目镜像

docker pull  镜像名

第二步:基于镜像生成docker红色背景是项目的端口映射,数据卷挂载,定制化自启动和root登录权限,这里按照自己的项目需求来:

docker run -dit -p 222:22 -p 8081:8080 -p 80:80 -p 3307:3306 -p 6380:6379 -p 15673:15672 -p 22123:22122 -p 23001:23000 -v /d/usr:/home -v /c/Windows/identification:/data/identification --privileged --restart=always -h 用户名 --name=容器名 镜像名:版本号  /bin/bash  /etc/rc.d/enable

第三步:进入docker,添加或修改docker这里看需求修改:我个人添加表sql,备份文件,脚本文件迁移到docker上用到了以下指令:

1、进入docker

docker start 容器名

docker exec -it 容器名  bash

2、宿主机复制文件到docker(当然也可以用Xftp):

docker cp 文件路径 容器长ID:docker容器中的路径

3、连接数据库执行sql文件

①连接MySQL:mysql -u用户 -p密码

②选择数据库:use 数据库名;

③执行sql文件:source 脚本文件全路径(/data/xxx.sql)

第四步:docker commit命令生成副本镜像

docker commit -m "备注" -a "修改人" 容器id  镜像名:新版本号

第五步:验证副本镜像(重复第二步骤、第三步骤,查看自己的修改
第六步:docker push命令上传至Docker Hub上

docker push 镜像名:新版本号

第七步:登录Docker Hub查看自己的提交

Docker打包镜像(三种方式)并发布到Docker Hub

二、基于docker快照打包镜像(export导出,import导入命令)

第一步:基于容器导出tar包这里LZ的tar包名:luntek-ic-platform3d5.tar),export命令(-o:指向导出tar文件,也可以用”>“大于号替代)

# container表示容器id或容器名
docker export [options] container

# 如果没有启动的容器,则需要启动容器

docker run -dit luntek/ic-platform:3.5

# 使用 export 导出容器,使用的是容器 id

docker export > luntek-ic-platform3d5.tar 容器ID

或者

docker export -o luntek-ic-platform3d5.tar 容器ID 

第二步:docker import 将tar包解压导入为镜像(这里LZ的镜像名:luntek/ic-platform:3.5

docker import [options] file|URL|- [REPOSITORY[:TAG]]

docker import luntek-ic-platform3d5.tar luntek/ic-platform:3.5

或者

cat luntek-ic-platform3d5.tar | docker import - luntek/ic-platform:3.5

第三步:docker上传至docker hub

sudo docker push luntek/ic-platform:3.5

三、基于镜像导出导入(save导出,load导入命令) 

第一步:基于镜像(可多个镜像)中导出文件(这里LZ的文件名:luntek-ic-platform3d5.tar,镜像名:luntek/ic-platform:3.5),save命令(-o:指向导出文件,也可以用”>“大于号替代)

# images [images...] 可以有多个 images 镜像
docker save [options] images [images...]

# 原来save如下,2023年8月Docker官方更新了save命令
docker save -o /root/luntek-ic-platform3d5.tar luntek/ic-platform:3.5

或者

docker save > /root/luntek-ic-platform3d5.tar luntek/ic-platform:3.5

# 现在save如下:

docker save  luntek/ic-platform:3.5 > /root/luntek-ic-platform3d5.tar

或者

docker save  镜像ID > /root/luntek-ic-platform3d5.tar

第二步:基于文件解压导入镜像(这里LZ的绝对路径文件名:/root/luntek-ic-platform3d5.tar),docker load命令(-i:指向解压导入文件,也可以用”<“小于号替代

docker load -i /root/luntek-ic-platform3d5.tar

或者

docker load < /root/luntek-ic-platform3d5.tar

第三步:docker上传至docker hub

sudo docker push luntek/ic-platform:3.5


结束语:所有的痛苦都是上天给予的成长提示文章来源地址https://www.toymoban.com/news/detail-479751.html

到了这里,关于Docker打包镜像(三种方式)并发布到Docker Hub的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python三种打包方式】分别使用PyInstaller & setupTools & 拷贝环境实现项目打包

    pyinstaller 和 setuptools 打包有什么区别(来自 ChatGPT 的答案) pyinstaller 和 setuptools 都是 Python 中常用的打包工具,但它们的主要目的和工作方式略有不同。 pyinstaller 是一个可以将 Python 代码 打包成一个可执行文件的工具 ,它会将你的 Python 代码和所有依赖项打包成一个单独的可

    2024年02月03日
    浏览(51)
  • Maven的三种项目打包方式——pom,jar,war的区别

    记录一次项目启动失败,发现Could not resolve dependencies for project的错误,原因是我的子模块的打包方式是pom 是怎么发现,因为我是从父模块打包的,但是发现我这个子模块找不到,我发现父子模块依赖关系也没错啊,我就单独打包这个子模块,结果没有错误,但是没生成targe

    2024年02月12日
    浏览(44)
  • SpringBoot项目打包Docker镜像

    1、创建springboot项目,并在根目录新建Dockerfile文件 Dockerfile文件内容  进到项目根目录打包  构建镜像(不要忽略最后的一个点) 查看镜像列表 启动

    2024年02月16日
    浏览(48)
  • SpringBoot项目如何打包成docker镜像?

    将Spring Boot项目打包成Docker镜像的过程可以分为以下几个步骤: 1. 创建Dockerfile 首先,你需要在Spring Boot项目的根目录下创建一个 Dockerfile 。这个文件包含了Docker镜像构建的所有指令。一个基本的 Dockerfile 可能看起来像这样: 确保替换 my-spring-boot-app-1.0.0.jar 为你的Spring Boot应用

    2024年02月21日
    浏览(41)
  • Vue项目打包成docker镜像部署

    一、介绍 我们部署Vue项目,可以build之后,直接放到nginx下面即可,今天给大家介绍创建docker镜像,使用docker镜像启动容器运行部署Vue项目的方式,可以尝试尝试,原理和使用nginx部署一样,不过是使用的docker容器而已,内部还是使用的是nginx作为基础镜像。 二、docker安装 d

    2023年04月08日
    浏览(54)
  • 怎么用docker打包发布java项目

    可以按照以下步骤使用 Docker 打包发布 Java 项目: 1. 为你的 Java 项目编写 Dockerfile 文件,用于构建 Docker 镜像。其中可以指定基础镜像、添加项目代码、安装依赖项、设置环境变量,具体内容如下:     ```     # 指定使用的基础镜像     FROM openjdk:11-jdk-slim         # 设置工作

    2024年02月15日
    浏览(66)
  • Vue项目如何打包成Docker镜像包

    要将 Vue 项目打包为 Docker 镜像,可以按照下面的步骤进行操作: 在 Vue 项目根目录下创建一个名为 Dockerfile 的文件。 在 Dockerfile 中定义应用程序所需的环境,例如 Node.js 运行时和依赖项。以下是一个示例: 构建 Docker 镜像。在终端中导航到项目根目录并运行以下命令: 其中

    2024年02月13日
    浏览(61)
  • 项目打包docker镜像,并指定运行的配置文件

    新建dockerfile文件,添加入以下内容 1.修改dockerfile中的配置,与对应文件和jar包的目录保持一致。如果已经有镜像包可忽略打包步骤,直接执行命令启动   2.服务启动的端口在application.properties文件中已配置,后续可根据实际情况修改 3.切换到文件所在目录; cd /home/zj/ 4.执行命

    2024年02月16日
    浏览(39)
  • 容器化微服务架构实践: Docker 镜像打包方式, 服务编排, 服务发现与注册中心

    作者:禅与计算机程序设计艺术 容器化微服务架构是云计算领域最新的架构模式之一,通过容器技术和编排工具Kubernetes等实现了跨主机、跨平台的部署管理能力。微服务架构模式采用分布式、面向服务的方式将复杂的应用程序切分成一个个独立的模块,每个模块运行在自己

    2024年02月06日
    浏览(49)
  • 项目打包docker镜像 | 上传nexus | jenkins一键构建

      Docker部署项目是指使用Docker容器化技术将应用程序及其依赖项打包成一个独立的、可移植的运行环境,并在各种操作系统和平台上进行部署和运行。   使用Docker的主要原因是解决了应用程序在不同环境中部署和运行的问题。传统上,应用程序在部署时需要考虑操作系统

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包