当前位置: 首页 > Linux

Docker容器快速入门-基本概念及安装

时间:2023-04-07 01:47:23 Linux

DockerDocker是一个供开发者和运维工程师(系统管理员)以容器的形式构建、共享和运行应用程序的平台。我们使用容器进行应用程序部署的方式使我们变得容器化。容器化应用具有以下特点,使得容器化越来越受欢迎:灵活:无论应用多么复杂,都可以容器化。轻量级: 容器使用和共享宿主机内核,在系统资源利用上比虚拟机更高效。可移植性: 容器可以在本地构建,部署到云端,随处运行。松耦合: 容器具有高度的自封装性,可以在不影响其他容器的情况下更换升级容器。可扩展: 可以在整个数据中心增加和自动分发容器副本。安全: 容器在不需要用户进行任何配置的情况下约束和隔离应用程序进程。镜像和容器实际上,容器是一个运行的进程,具有一些封装特性,可以将它与主机和其他容器上的进程隔离开来。每个容器只能访问自己的私有文件系统,这是容器隔离的一个重要方面。Docker镜像提供了这个文件系统,一个镜像包含运行应用程序的所有需求——代码或二进制文件、运行时、依赖库和其他所需的文件系统对象。与虚拟机不同,虚拟机(VM)运行一个完整的操作系统,通过虚拟机管理(Hypervisor)来访问宿主机资源。通常虚拟机会产生很大的开销,超过了应用程序本身所需的开销。容器化过程的可移植性和可重复性意味着我们有机会跨云和数据中心移动和扩展容器化应用程序。容器有效地保证了应用程序可以在任何地方以相同的方式运行,这使得我们可以快速高效地使用所有这些环境。当我们扩展我们的应用程序时,我们需要工具来帮助在容器生命周期中自动维护它们,自动替换失败的容器,管理滚动升级和重新配置。  容器编排器(Orchestrator)是一个用于管理、扩展和维护容器化应用程序的工具。目前,最常见的例子是Kubernetes和DockeSwarm。_DockerDesktop_工具可以在开发环境中提供这两个编排工具。目前_DockerDesktop_只支持在Windows和OSX系统上安装。本文接下来的部分主要介绍如何在Linux上安装Docker并运行一个容器。安装Docker如果你使用的是Windows或者MacOS系统,请参考上面的链接安装使用_DockerDesktop_,下面我们将以Ubuntu18.04系统为例安装社区版Docker(docker-ce)。  配置软件源更新apt包索引$sudoaptupdate安装所需包$sudoaptinstall\apt-transport-https\ca-certificates\curl\gnupg-agent\software-properties-common添加Docker官方GPG信息$curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|须藤一个pt-keyadd-使用如下命令添加Docker的安装源$sudoadd-apt-repository\"deb[arch=amd64]https://download.docker.com/linux/ubuntu\$(lsb_release-cs)\stable"stable表示添加了稳定版的源。安装更新软件源$sudoaptupdate安装最新版本的Docker引擎和containerd$sudoaptinstalldocker-cedocker-ce-clicontainerd.io验证安装$sudodockerrunhello-world此命令将下载测试图像并运行打印一些信息然后退出的容器。  补充:不需要使用sudo来运行docker命令,可以将当前用户添加到docker$sudousermod-aG"docker"重新登录用户后,直接使用docker命令即可操作。运行容器在上面安装docker引擎的最后验证步骤中,我们实际上已经运行了一个容器。下面是如何运行ubuntu操作系统的基本容器的示例。以下命令假定当前用户已添加到docker组。拉取(Pull)镜像$dockerimagepullubuntu:18.04该命令将从Docker的官方镜像仓库(DockerHub)下载一个官方维护的Ubuntu基础镜像,标记为18.04。  运行容器$dockercontainerrun--rm-itubuntu:18.04root@451a1f6ed7c9:/#以上命令会运行一个镜像为ubuntu:18.04的容器,--rm选项表示会自动退出或者stopthecontainer删除容器,-it选项表示创建一个tty并与之交互,因为容器默认运行进程是bash,所以我们可以直接在容器中进行交互。当容器运行时,可以打开另一个终端,使用以下命令查看宿主机上当前运行的容器dockercontainerlsCONTAINERIDNAMESIMAGECREATEDagoSTATUSPORTSCOMMAND451a1f6ed7c9musing_diffieubuntu:18.044minutesagoUp4minutes"/bin/bash”当我们在容器的唯一高端执行exit,或者在宿主机的另一个终端执行dockercontainerstopmusing_diffie时,容器会被停止并删除。总结这里我们介绍了容器的基础知识概念,并在Ubuntu系统上安装Docker,运行一个简单的容器。在本系列的下一篇文章中,我将介绍如何容器化我们的应用程序。