如何将应用打包成为 Docker 镜像
展开全部
当想让一个容器做两件事情,或者使一个Docker镜像包含来自两个不同镜像的依赖库时,就需要知道每个镜像的Dockerfile。本文介绍了如何通过docker history命令来对Docker镜像进行反向工程,得到它们的Dockerfile,并组织到一个Dockerfile里然后build,从而实现想做的事情。
常言道,“不要重复发明轮子!”
在使用Docker时,构建自己的镜像之前,最好在Docker Hub寻找一些可以直接使用的镜像做练习。把软件架构分布到一系列容器中,每一个容器只做一件事情,这样的效果非常好。构建分布式应用的最好的基石是使用来自Docker Hub的官方镜像,因为可以信任它们的质量。
在某些情况下,可能想让一个容器做两件不同的事情。而在另外一些情况下,可能想让一个Docker镜像包含来自两个不同镜像的依赖库。如果有每个镜像的Dockerfile,这是非常简单的。将它们组织到一个Dockerfile里然后build就行。
然而,大多数时间都在使用Docker Hub上准备好的镜像,不会有它们的源Dockerfile。我花时间找一个可以合并(或flatten)两个不同Docker镜像的工具,当然没有它们的Dockerfile。也就是说在找一个能做下面这件事的东西:
常言道,“不要重复发明轮子!”
在使用Docker时,构建自己的镜像之前,最好在Docker Hub寻找一些可以直接使用的镜像做练习。把软件架构分布到一系列容器中,每一个容器只做一件事情,这样的效果非常好。构建分布式应用的最好的基石是使用来自Docker Hub的官方镜像,因为可以信任它们的质量。
在某些情况下,可能想让一个容器做两件不同的事情。而在另外一些情况下,可能想让一个Docker镜像包含来自两个不同镜像的依赖库。如果有每个镜像的Dockerfile,这是非常简单的。将它们组织到一个Dockerfile里然后build就行。
然而,大多数时间都在使用Docker Hub上准备好的镜像,不会有它们的源Dockerfile。我花时间找一个可以合并(或flatten)两个不同Docker镜像的工具,当然没有它们的Dockerfile。也就是说在找一个能做下面这件事的东西:
展开全部
理论结合实践,将 Docker 镜像构建讲的清清楚楚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Docker 提供了一个可以运行你的应用程序的封套(envelope),或者说容器。它原本是 dotCloud 启动的一个业余项目,并在前些时候开源了。它吸引了大量的关注和讨论,导致 dotCloud 把它重命名到 Docker Inc。它最初是用 Go 语言编写的,它就相当于是加在 LXC(LinuX Containers,linux 容器)上的管道,允许开发者在更高层次的概念上工作。
Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXC, cgroups 和 Linux 自己的内核。和传统的虚拟机不同的是,一个 Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。这里有一个 Stackoverflow 的答案,里面非常详细清晰地描述了所有 Docker 不同于纯粹的 LXC 的功能特性
Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种 Linux 服务器上。这大大地提高了程序运行的灵活性和可移植性,无论需不需要许可、是在公共云还是私密云、是不是裸机环境等等。
Docker 由下面这些组成:
1. Docker 服务器守护程序(server daemon),用于管理所有的容器。
2. Docker 命令行客户端,用于控制服务器守护程序。
3. Docker 镜像:查找和浏览 docker 容器镜像。
Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXC, cgroups 和 Linux 自己的内核。和传统的虚拟机不同的是,一个 Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。这里有一个 Stackoverflow 的答案,里面非常详细清晰地描述了所有 Docker 不同于纯粹的 LXC 的功能特性
Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种 Linux 服务器上。这大大地提高了程序运行的灵活性和可移植性,无论需不需要许可、是在公共云还是私密云、是不是裸机环境等等。
Docker 由下面这些组成:
1. Docker 服务器守护程序(server daemon),用于管理所有的容器。
2. Docker 命令行客户端,用于控制服务器守护程序。
3. Docker 镜像:查找和浏览 docker 容器镜像。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询