exec format error in docker
本文转自 帅枫小明 51CTO博客,原文链接:http://blog.51cto.com/576642026/1790640,如需转载请自行联系原作者
Docker image详细介绍
在之前的介绍中,我们知道docker images 是docker的三大组件之一。
docker把下载的 images 存储到docker主机上,如果一个 image 不在主机上,docker会从一个镜像仓库下载,默认的仓库是 DOCKER HUB 公共仓库。
接下来将介绍更多关于docker images 的内容,包括:
使用和管理本地主机上的 images
创建一个基础的 images
上传 images 到docker hub (公共images 仓库)
列出本地主机上已经存在的 images
1)使用docker images 显示本机上的 images
一个仓库可能有一个 images 的多个发行版,比如ubuntu,他们有 10.04 12.04 12.10 13.04 14.04,每个发行版的标记都不同,可以使用 tag 命令来指定 images
注:如果你不指定具体的发行版,比如仅使用ubuntu,那么docker会使用最新的发行版ubuntu:latest
提示:建议最好指定发行版,只有这样你才可以保证你真正使用的 image 是那个
2)查找 images
docker的一个特点是很多人因为各种不同的用途创建了各种不同的 images 。它们都被上传到了docker hub 共有仓库上,我们可以在docker hub 的网站上来查找它们。使用docker search 命令。格式是“docker search 关键词”
3)获取/下载 images
当我们启动容器使用的 image 不在本地主机上时,docker会自动下载他们。这很耗时,我们可以使用docker pull 命令来预先下载我们需要的 image 。
格式是“docker pull 镜像名”
4)查看镜像完整信息
当镜像下载成功后,你可以看到 12 位的hash 值像 05188b417f30,这是下载完整的镜像的精简 ID,这些短的镜像 ID 是完整镜像ID 的前 12 个字符--可以使用docker inspect 或者docker images --no-trunc来获得完整的镜像 ID。
5)创建我们自己的 images
别人的镜像虽然好,但不一定适合我们。我们可以对他们做一些改变,有 2 个方法:
1.第一个方法:使用docker commit 来扩展一个 image。
步骤如下:
①先使用 基础image 启动容器,更新后提交结果到新的 image,命令最后其实省略了/bin/bash,其实默认就是/bin/bash,可以省略。我们这里以docker.io/centos:latest为基础镜像来制作属于我们的镜像。
②往容器内添加应用
③应用安装完毕,退出容器
④用docker commit来制作镜像成为我们的镜像
⑤使用docker images 来查看新创建的镜像,之后,可以使用新的镜像来启动容器了,这里我们只学怎么做成属于我们的镜像,就到此为止了,就不进入容器了。
2.第二个办法:从dockerfile镜像文件来创建 image
两种方法的对比说明:
1)使用docker commit 来扩展一个 image 比较简单,但它不容易在一个团队中分享它,别人看不见你镜像内部安装了什么应用
2)使用docker build 来创建一个新的 image 。可以让别人看见你制作的镜像内有有什么应用,便于团队交流。
步骤如下:
①我们需要创建一个dockerfile,包含一些如何创建我们的image 的指令。现在,我们来创建一个目录和一个dockerfile。我们这里以docker.io/centos:centos7为基础镜像来制作属于我们的镜像。
②编写完成dockerfile后可以使用dockerbuild 来生成镜像。
③使用docker images 来查看新创建的镜像,之后,可以使用新的镜像来启动容器了,这里我们只学怎么做成属于我们的镜像,就到此为止了,就不进入容器了。
说明:可以看到 build 进程在执行操作。它要做的第一件事情就是上传这个dockerfile内容,因为所有的操作都要依据dockerfile来进行。然后,dockfile中的指令被一条一条的执行。每一步都创建了一个新的容器,在容器中执行指令并提交修改(就跟之前介绍过的docker commit 一样)。当所有的指令都执行完毕之后,返回了最终的镜像 id。所有的中间步骤所产生的容器都被删除和清理了。
*注意一个镜像不能超过127 层
6)用docker tag 命令来修改镜像的标签(即修改镜像的名字)
我们这里就以修改centos6镜像为例:
7)删除不要的镜像
我们就以删除centos6镜像为例:
8)从本地文件系统导入
要从本地文件系统导入一个镜像,可以使用openvz(容器虚拟化的先锋技术)的模板来创建:openvz的模板下载地址为http://openvz.org/Download/template/precreated。
先下载了一个centos-7-x86_64.tar.gz的镜像,之后使用以下命令导入:
9)上传镜像
用户可以通过docker push 命令,把自己创建的镜像上传到仓库中来共享。例如,用户在 Docker Hub 上,完成注册后,可以推送自己的镜像到仓库中。
这里有两种访问可以创建和注册一个 Docker Hub 账户:
1.通过网站,(https://hub.docker.com)
2.通过命令行
你可以通过使用命令行输入 docker login 命令来创建一个 Docker Hub 账号
#docker login
邮箱确认
一旦你填写完毕表格,请查看你的电子邮件,通过点击欢迎信息中的链接来激活您的账户。
基本思路:
首先注册docker的账户,然后使用dockerlogin登录。
使用docker push可以将自己的镜像上传上去了.
10)存出和载入镜像
当需要把一台机器上的镜像迁移到另一台机器的时候,需要存出镜像与载入镜像。
存出镜像
如果要导出镜像到本地文件,可以使用docker save 命令。
载入镜像
可以使用docker load 从导出的本地文件中再导入到本地镜像库
本文转自Mr大表哥 博客,原文链接: http://blog.51cto.com/zpf666/1901839 如需转载请自行联系原作者
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。