Docker 教程(一):Docker 是什么

简介: Docker 是一种将应用程序和服务器配置打包成 Docker 镜像的方法,使用了一种称为 Dockerfile 的简单打包规范。Docker 镜像可以启动多个多个实例,这些运行的实例被称为 Docker 容器。这个系列的内容主要包括讲解什么是 Docker 镜像、什么是容器、什么是 Dockerfile,以及如何创建、运行和发布等。

image.png

本文源自并发编程网的翻译邀请,翻译的是 Jakob Jenkov 的 《Docker 教程》 中的第一篇,本文大概介绍了 Docker 是什么和有什么用。可能在工作中,会有专业运维同学管理服务器镜像或其他内容,但是如果不了解这些概念,很多时候我们不会全面了解到系统的全貌。


Docker 是一种将应用程序和服务器配置打包成 Docker 镜像的方法,使用了一种称为 Dockerfile 的简单打包规范。Docker 镜像可以启动多个多个实例,这些运行的实例被称为 Docker 容器。这个系列的内容主要包括讲解什么是 Docker 镜像、什么是容器、什么是 Dockerfile,以及如何创建、运行和发布等。


Docker 的优势

使用 Dockerfile 打包应用和服务器配置最大的好处是:


不会忘记服务器是如何配置的,这些配置信息都记录在 Dockerfile 中。

很容易在一个全新啊的 Docker 主机上运行应用程序,只需要将应用程序的 Docker 镜像部署到这台 Docker 主机上,然后启动它即可。

可以使用 Kubernetes 和 Swarm 轻松管理集群中的 Docker 容器。

目前许多云服务器平台可以很轻松的部署 Docker 容器,Docker 已经成为让云更加独立的部署方案。

Docker 容器可以很简单的实现在客户自己的服务器上按照你的应用程序。

什么是 Docker 容器

Linux 操作系统有几个特性:运行在操作系统上运行容器化的应用程序,这些容器化的特性,运行将文件系统和网络在各个容器化应用程序之间彼此分离。换句话说,一个容器化应用程序,不能访问另一个容器化应用程序的文件系统或网络,除非增加特殊配置,允许这种操作。Docker 使用 Linux 的容器化特性,并通过一组易于使用的工具公开这些特性。


image.png


Docker 容器 vs. 虚拟机

Docker 容器在本质上类似于虚拟机,两者的不同之处在于,虚拟机在总栈上有一个额外的操作系统。也就是说,虚拟机有完整的操作系统,然后这个虚拟机运行在一个有操作系统的主机上。


Docker 容器与虚拟机的实现不同,它没有自己单独的操作系统,直接运行在所在主机的操作系统中。所以,Docker 容器足够小,因为它不包含虚拟机操作系统。Docker 容器运行的也很好,因为它不需要虚拟机的虚拟化。


image.png


Dockerfile

如前所述,我们可以通过一个按规则定义的 Dockerfile 文件,指定要包含在 Docker 容器中的内容。Dockerfile 文件包含了一组有 Docker 命令行工具执行的 Docker 指令,按照 Dockerfile 执行的结果是 Docker 镜像。我们可以从 Dockerfile 教程 中得到更详细的解释。【译者注:后续翻译完成后,将替换此处链接。】


Docker 镜像

Docker 命令行工具按照 Dockerfile 中定义的结构执行指令时,会生产一个可移植、可运行的 Docker 镜像。这个 Docker 镜像中包含了所有 Docker 容器需要的文件和指令,同一个 Docker 镜像可以启动多个 Docker 容器。


image.png


Docker 仓库

Docker 镜像可以存储在 Docker 仓库中,一个可以将 Docker 镜像上传、下载的存储仓库。Docker 仓库可以是私有的,只能你或者你的组织或者你指定的人管理其中的镜像,也可以是公有的,任何人都可以管理其中的镜像,或者是从中下载 Docker 镜像。


一个公有的 Docker 仓库,是运行潜在用户下载、安装和运行软件的很好的方式,只需要将应用程序打包为 Docker 镜像,上传到公有的 Docker 仓库中,你的用户就可以访问并使用它。


Docker 公司已将 Docker 仓库作为一项托管服务,提供了私有和公有两种服务。一些云服务商,比如 AWS、AZure 和 Google,也提供了 Docker 仓库服务器,可以上传自己的 Docker 镜像。很容易的就能在云基础设施上的虚拟机或 Kubernetes 中使用这些镜像。


image.png


Docker 命令行工具

当在操作系统中安装 Docker 的时候,会同时安装 Docker 命令行工具。Docker 命令行工具可以通过 Dockerfile 构建 Docker 镜像,可以将 Docker 镜像上传到 Docker 仓库中,可以从 Docker 仓库中下载 Docker 镜像,可以操作 Docker 镜像启动或停止 Docker 容器。


Docker Compose

Docker Compose 提供一种功能,可以将多个 Docker 容器链接成一个组合中,这个组合中的所有容器,可以一次性全部部署或停止。比如,一个 Docker 容器中运行应用,一个 Docker 容器中运行数据库,应用依赖于数据库,同时启动或停止,可以实现应用依赖的数据库没有正常运行。


推荐阅读

Docker 教程(一):Docker 是什么

Docker 教程(二):Dockerfile

Docker 教程(三):Docker 命令


目录
相关文章
|
2月前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
102 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
1月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
1034 2
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
27天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
2月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
1889 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
393 3
|
2月前
|
数据可视化 数据挖掘 Docker
Docker Desktop 安装 ClickHouse 超级简单教程
Docker Desktop 安装 ClickHouse 超级简单教程
63 1
|
2月前
|
定位技术 文件存储 网络架构
Docker部署PhotoPrism、Immich图片管理应用,无需公网IP远程访问教程
除了Synology、QNAP、TerraMaster等品牌的NAS设备内置图库功能,市面上还有多种备受欢迎的第三方应用,如PhotoPrism、Immich、LibrePhotos、Piwigo、Photoview等。这些应用不仅提供强大的图片管理能力,还可通过Docker轻松部署。借助贝锐花生壳服务,即使没有公网IP也能实现远程访问,突破地理限制,提升数据可访问性和安全性,让用户随时随地管理私人图库。
195 1
|
2月前
|
存储 应用服务中间件 nginx
|
2月前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
72 0
|
3月前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
下一篇
DataWorks