打包一个Docker镜像,让你的好友加载开启一个容器,并且每隔一秒输出hello,world到指定的文件中

一、两个脚本代码

Dockerfile

1 FROM bash
2 COPY . /usr/herui/
3 WORKDIR /usr/herui/
4 CMD [ "sh", "hello_world.sh" ]

hello_world.sh

1 #!/bin/bash
2 while true
3 do
4 echo ‘hello world!‘ >> /usr/herui/hello_world.log
5 sleep 1
6 done

二、打包成镜像

1、

 1 [[email protected] herui]# docker build -t hello_world:1.01
 2 "docker build" requires exactly 1 argument(s).
 3 See ‘docker build --help‘.
 4
 5 Usage:  docker build [OPTIONS] PATH | URL | -
 6
 7 Build an image from a Dockerfile
 8 [[email protected] herui]# docker build -t hello_world:1.01 .
 9 Sending build context to Docker daemon  3.072kB
10 Step 1/4 : FROM bash
11  ---> 906f4bf24f00
12 Step 2/4 : COPY . /usr/herui/
13  ---> Using cache
14  ---> ab38183c9bcb
15 Step 3/4 : WORKDIR /usr/herui/
16  ---> Using cache
17  ---> 24442df0587c
18 Step 4/4 : CMD sh hello_world.sh
19  ---> Using cache
20  ---> 9413de166e6f
21 Successfully built 9413de166e6f
22 Successfully tagged hello_world:1.01

这里要注意,打包指令需要在Dockerfile、hello_world.sh下进行,指令后面最后一个“.”,这叫上下文路径。

2、查看镜像文件列表,看看是否成功

1 [[email protected] herui]# docker images
2 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
3 hello_world         1.01                9413de166e6f        2 days ago          12.1MB

三、保存成tar.gz格式并检查当前目录下包是否存在

1 [[email protected] herui# docker save hello_world:1.01 | gzip > hello_world.tar.gz
2 [[email protected] herui]# ls -lh hello_*
3 -rw-r--r--. 1 root root   92 Aug 31 17:53 hello_world.sh
4 -rw-r--r--. 1 root root 4.4M Sep  3 01:29 hello_world.tar.gz
时间: 2025-01-18 11:43:36

打包一个Docker镜像,让你的好友加载开启一个容器,并且每隔一秒输出hello,world到指定的文件中的相关文章

Android如何定制一个下拉刷新,上滑加载更多的容器

前言 下拉刷新和上滑加载更多,是一种比较常用的列表数据交互方式. android提供了原生的下拉刷新容器 SwipeRefreshLayout,可惜样式不能定制. 于是打算自己实现一个专用的.但是下拉刷新和上滑,非常考验对android布局与父子触摸机制的功底,因此参考gitHub上的一个热门的下拉刷新项目 之所以选择他是因为它一个类就完成了所有View的适配,非常的精简强力. 需求 咱对下拉刷新.上滑加载更多的控件,需求如下: 1:下拉刷新,拖动到一定距离,提示文字变成 放手刷新 2:刷新完成

操作系统-容器-Docker:如何将应用打包成为 Docker 镜像?

ylbtech-操作系统-容器-Docker:如何将应用打包成为 Docker 镜像? 1.返回顶部 1. 虽然 DockerHub 提供了大量的镜像,但是由于企业环境的多样性,并不是每个应用都能在 DockerHub 找到对应的镜像来使用.那就要求企业的运维人员掌握制作 Docker 镜像的技能.在开始打包应用前,你首先要明白这两件事: 第一件事是选择适合你的方式来生成镜像: 1. 通过 Dockerfile 来自动编译生成镜像,实现构建镜像的需求. 2.通过容器内操作,并进行 Commit

如何交互式地创建一个Docker镜像

今天我们来学习如何使用一个docker镜像交互式地创建一个Docker镜像.当我们从镜像中启动一个Docker进程,Docker就会获取该镜像及其父镜像,并重复这个过程,直到到达基础镜像.然后联合文件系统(UFS)会在其顶层添加一个读写层.读写层被称之为容器,它包含了一些关于父镜像信息及一些其他的信息,如唯一ID,网络配置和资源限制等.容器是有状态的,其状态可以从 运行态 切换到 退出态.一个处于 运行态的容器包含了在CPU上面运行的进程树,于其它在该主机上运行的进程相隔离,而退出态是指文件系统

【Cocos2d-Js基础教学(5)资源打包工具的使用及资源的异步加载处理】

[转载]http://www.cnblogs.com/zisou/p/cocos2dx-js5.html   TexturePacker是纹理资源打包工具,支持Cocos2dx的游戏资源打包. 如果用过的同学可以直接看下面的资源的异步加载处理 首先为什么用TexturePacker? 1,节省图片资源实际大小 2,减少我们游戏中大量资源带来的内存负荷 3,方便游戏对纹理资源的内存管理 游戏开发到后期,我们或许都会遇到的瓶颈就是需要对游戏包进行"瘦身"和内存优化.那么使用TextureP

ViewPage+frament不预加载下一个Frament数据解决办法

在做一个ViewPage+Frament 滑动数效果,当滑动到每一页时加载哪一页的数据,但是ViewPage会预加载下一也数据,这个问题之前做项目是一直未解决,今天找到一个方法一下子就解决的这个问题,Frament里面有一个setUserVisibleHint方法,setUserVisibleHint每次fragment显示与隐藏都会调用,下面说一下这个方法的使用 @Override public void setUserVisibleHint(boolean isVisibleToUser)

PHP加载另一个文件类的方法

加载另一个文件类的方法 当前文件下有a.php 和b.php,想要在class b中引入class a <?php    class a    {        public $name = 'zhouqi';        public function say()        {            echo 'hello '.$this->name;        }    } <?php    class b    {        //require('a.php'); 错

MVC中在一个视图中,怎么加载另外一个视图?

在RazorView.cshtml视图: <!--在视图中调用无返回值的方法,视图中调用无返回值的方法,要加上大括号--> <!--在一个视图中,直接加载另外一个视图--> @{ Html.RenderPartial("LoadViewBySelf");} 去加载LoadViewBySelf.cshtml视图: @{ ViewBag.Title = "LoadViewBySelf"; } <h2>LoadViewBySelf<

android开发之Fragment加载到一个Activity中

Fragments 是android3.0以后添加的.主要是为了方便android平板端的开发.方便适应不同大小的屏幕.此代码是为了最简单的Fragment的使用,往一个Activity中添加Fragment,主要涉及的知识点有:1.Fragment类的创建,2.Fragment的添加3.无UI的 Fragment的添加,根据Tag找回Fragment Fragment对应的Xml布局文件, <LinearLayout xmlns:android="http://schemas.andro

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了: 1.浏览器补全URL地址 在输入完URL之后,浏览器会自动检查该地址是否完整,例如是否有添加https协议,若发现不完整,会自动补全. 2.向DNS查询IP地址 每个域名都对应一个或多个提供相同服务服务器的 IP 地址,只有知道服务器 IP 地址才能建立连接,所以需要通过 DNS 把域名解析成一个 IP 地址. 3.得到IP地址后,建立连接,进行三次握手 即每次建立连接前,客户端和服务端都要先进行三次对话才开始正式传输内容,三次对