Dockerfile创建镜像并上传到Docker Hub

news2024/9/21 14:35:01

Dockerfile创建镜像并上传到Docker Hub

  • 1. Dockerfile
    • 1.1 准备文件
    • 1.2 构建镜像
  • 2. 上传docker hub
  • 参考

1. Dockerfile

通过Dockerfile构建镜像

1.1 准备文件

  1. 在某个空文件夹(假设名为test)下编写Dockerfile文件

    # 声明使用哪个基础镜像
    FROM ubuntu:20.04  
    # 声明该镜像的维护者
    MAINTAINER wh
    # 修改镜像中当前工作目录
    WORKDIR /media
    
    # 在镜像中执行命令
    RUN apt update \
        && apt install python -y
    RUN touch 123.txt
    
    # 将Dockerfile所在文件夹中的123.txt
    # 拷贝到镜像/media中,重命名为456.txt
    COPY 123.txt ./456.txt
    
    # 查看一些信息
    RUN python --version
    RUN pwd
    
  2. 创建123.txt,其中包含

    Hello world!
    

1.2 构建镜像

cd test
sudo docker build -f Dockerfile -t t:0.1 .

输出,(在拉取ubuntu镜像和安装python时会有其他输出,下面是已下载完之后构建镜像时的输出)

Sending build context to Docker daemon  3.072kB
Step 1/8 : FROM ubuntu:20.04
 ---> d5447fc01ae6
Step 2/8 : MAINTAINER wh
 ---> Using cache
 ---> 2e4af756d4ad
Step 3/8 : WORKDIR /media
 ---> Using cache
 ---> a5211ddd26c0
Step 4/8 : RUN apt update     && apt install python -y
 ---> Using cache
 ---> a49ce33d6b8b
Step 5/8 : RUN touch 123.txt
 ---> Using cache
 ---> 6013b73f3452
Step 6/8 : COPY 123.txt ./456.txt
 ---> Using cache
 ---> 401fae70f5d5
Step 7/8 : RUN python --version
 ---> Using cache
 ---> a0cead0f2cd9
Step 8/8 : RUN pwd
 ---> Using cache
 ---> 9d5a6e529f3a
Successfully built 9d5a6e529f3a
Successfully tagged t:0.1

查看镜像

sudo docker images 

输出

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
t            0.1       9d5a6e529f3a   20 minutes ago   150MB
ubuntu       20.04     d5447fc01ae6   7 weeks ago      72.8MB

进入镜像

sudo docker run -it t:0.1 bash

2. 上传docker hub

  1. 注册账号

    https://hub.docker.com/

  2. 本地登录账号。我的用户名是a171232886,注意进行替换

    sudo docker login -u 用户名
    

    Your password will be stored unencrypted in /root/.docker/config.json.

  3. 修改镜像的repository,防止和其他用户的冲突

    sudo docker tag t:0.1 a171232886/test:0.1
    sudo docker images
    

    输出

    REPOSITORY        TAG       IMAGE ID       CREATED          SIZE
    t                 0.1       9d5a6e529f3a   44 minutes ago   150MB
    a171232886/test   0.1       9d5a6e529f3a   44 minutes ago   150MB
    ubuntu            20.04     d5447fc01ae6   7 weeks ago      72.8MB
    
  4. 在Docker Hub中创建自己的repository

    可选pubilc还是private,只是private只能有一个
    在这里插入图片描述

  5. 上传镜像

    sudo docker push a171232886/test:0.1
    
    image-20230128161331985
  6. 拉去镜像到本地

    sudo docker pull a171232886/test:0.1
    

参考

  1. https://docs.docker.com/engine/reference/builder/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/182421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud微服务网关Gateway组件学习笔记

目录 网关简介 1. 什么是Spring Cloud Gateway 1.1 核心概念 1.2 工作原理 2. Spring Cloud Gateway快速开始 2.1 环境搭建 2.2集成Nacos 3. 路由断言工厂(Route Predicate Factories)配置 3.1内置断言工厂 3.2自定义 4. 过滤器工厂&#xf…

Android Studio实现志愿者系统

项目目录一、项目概述二、主要技术三、开发环境四、详细设计1、基础Activity2、活动信息3、成员信息4、百度地图5、Widget组件五、运行演示一、项目概述 本系统采用MVC架构设计,SQLite数据表有用户表、成员表和活动表,有十多个Activity页面。打开应用&a…

123、【回溯算法】leetcode ——491. 递增子序列:unordered_set去重和int数组去重(C++版本)

题目描述 原题描述:491. 递增子序列 解题思路 此题也是子集问题,但和 90.子集II (子集问题startIndex去重) 的区别在于:(1)存储结果集判定条件;(2)输入数据…

Python学习笔记十二之十大经典排序算法

Python学习笔记十二之十大经典排序算法 排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,…

zos JESMSGLG 不显示 job steps return codes

zos JESMSGLG 不显示 job steps return codes 在普通学习的时候,SDSF 查看 JCL 结果,可能并不会注意到下面结果有什么差别 但跟公司的大型机出的结果是不同的,就是缺少了 job steps return codes,在 STARTED 和 ENDED 中间应该有…

【Linux】冯诺依曼体系结构和操作系统

目录 一、冯诺依曼体系结构 1.组成 2.各结构特性 二、操作系统 1.概念 2.设计OS的目的 3.如何理解 "管理" 4.系统调用 一、冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依…

浅析故障电弧探测器在电气防火中的作用与应用介绍

安科瑞 李雨轩【摘要】: 分析了重大电气火灾数据。结合目前国内前沿的电气火灾探测技术,重点介绍了故障电弧式电气火灾监控探测器在火灾预警系统中的重要作用,给出了基于多种探测技术的电气火灾监控系统的实现方案。【关键词】:故…

C++模板初阶小笔记

目录 一.泛型编程 二.函数模板 1.函数模板语法梳理: 2.函数模板的实例化: 3.函数模板的显式实例化: 4.函数模板使用时的注意事项 三.类模板 1.类模板的语法梳理 2.类模板中声明和定义分离的成员函数 一.泛型编程 泛型编程&#xff…

【C++】类和对象---什么是类?

目录1.面向过程和面向对象初步认识2.类的引入2.1使用struct定义类3.类的定义3.1类的两种定义方式:3.2成员变量命名规则的建议3.3成员函数与成员变量定义的位置建议4.类的访问限定符及封装4.1访问限定符4.2封装5.类的作用域6.类的实例化7.类对象模型7.1如何计算类对象…

Kali Linux渗透

Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。每一季度更新一次。 黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情…

从C语言的使用转换到C++(上篇)——刷题、竞赛篇

文章目录 一、C的基础语法详解 1、1 输入、输出流 1、2 C中头文件的使用 1、3 C中变量的声明 1、4 C中的string类 1、5 C中的引用& 二、C中常见函数使用详解 2、1 排序sort函数详解 2、2 cctype头文件中的函数 三、总结 标题:从C语言的使用转换到C(上…

④【Spring】IOC - 基于注解方式 管理bean

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 注解管理Bean一、注解的功能二、四个典型注解三…

day24|491.递增子序列、46.全排列、47.全排列 II

491.递增子序列 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况…

源码深度解析Spring Bean的创建,手把手的一步一步带你看源码

在源码深度解析Spring Bean的加载 中对Bean的加载源码进行了梳理,在本文将对bean的创建进行梳理 在doGetBean()方法中createBean()方法准备创建bean,调用源码如下: createBean() 方法的源码如下: 从代码中可以得出,createBean() 方法涉及4个步骤: 步骤一: 根据设置的class属…

[论文笔记]A ConvNet for the 2020s

目录 Abstract Modernizing a ConvNet: a Roadmap 2.1.Training Techniques 2.2. Macro Design 2.3. ResNeXt-ify 2.4. Inverted Bottleneck 2.5. Large Kernel Sizes 2.6. Micro Design 论文:https://arxiv.org/abs/2201.03545 代码:GitHub - f…

扩散模型(Diffusion model)代码详细解读

扩散模型代码详细解读 代码地址:denoising-diffusion-pytorch/denoising_diffusion_pytorch.py at main lucidrains/denoising-diffusion-pytorch (github.com) 前向过程和后向过程的代码都在GaussianDiffusion​这个类中。​ 常见问题解决 Why self-condition…

盒相关样式-----diaplay:block、inline

盒的基本类型 CSS中的盒分为block类型与inline类型,例如, div元素与p元素属于block类型, span元素与a元素属于inline类型。 block类型的盒对应的是html中的块级元素,inline类型的盒对应了html中的行内元素。 行内元素与块级元素…

JavaScript 练手小技巧:键盘事件

键盘事件应该是鼠标事件之外,使用频率最高的 JS 事件了吧? 一般用于全局或者表单。 键盘事件由用户击打键盘触发,主要有keydown、keypress、keyup三个事件。 keydown:按下键盘时触发。Ctrl、Shift、Alt 等和其它按键组合时&…

BCNF与3NF

今天学了一下午这个BCNFBCNFBCNF与3NF3NF3NF,有感而发,特来总结。好像好久不打键盘了,这手好像刚长出来的一样。本文浅显的分析一下两种范式的关系与不同以及判断方法和分解算法,以做总结。 BCNFBCNFBCNF范式的定义如下: 设属性集…

linux 常用指令大全

目录一、基本指令指令基本格式1、ls1.1 ls相关选项2、pwd3、cd4、mkdir4.1、mkdir相关选项5、touch6、cp6.1 cp相关选项7、mv8、rm8.1、rm相关选项9、输出重定向10、cat11、df11.1、df 相关选项12、free12.1、free 相关选项13、head13.1、head相关选项14、tail14.1 tail相关选项…