第一个Docker容器:运行你的第一个容器

引言

在当今快速发展的软件技术领域,Docker以其独特的容器化技术引领了一场革命。

Docker不仅简化了软件的部署和迁移,还提高了开发和运维的效率。容器化的核心概念在于将应用及其依赖打包在一起,确保了环境一致性和快速部署的优势。

本文旨在为初学者提供一个清晰的指南,帮助他们理解Docker的基本原理,并成功运行他们的第一个Docker容器,开启高效、便捷的软件开发之旅。

一、Docker基础

Docker的基础介绍,本文不多做介绍,具体可以查看以下几篇文章:

Docker的崛起:理解其起源与流行的原因

Docker vs 虚拟机:理解它们的关系

Docker入门:什么是Docker及其工作原理

二、安装Docker

2.1 系统要求

Docker是一款轻量级的容器化平台,它允许开发者打包应用及其依赖到一个可移植的容器中。为了顺利安装Docker,您的系统需要满足以下基本要求:

  • 操作系统:支持Docker的操作系统包括Windows 10 64位(专业版、企业版或教育版)、macOS Sierra 10.12及以上版本、以及多种Linux发行版,如Ubuntu、Debian和CentOS。

  • 硬件:需要支持虚拟化技术,且至少有4GB的RAM(推荐8GB或更多)。

  • 其他:对于Windows系统,需要启用Hyper-V功能;对于Linux系统,可能需要卸载旧版本的Docker。

2.2 不同操作系统上安装Docker的步骤

2.2.1 windows安装docker

在Windows 10上安装Docker的步骤通常包括以下几个主要环节:

  • 确保系统满足安装要求
  • 安装Hyper-V

Docker Desktop for Windows依赖于Hyper-V来运行。以下是启用Hyper-V的步骤:

  • 打开PowerShell作为管理员。

  • 输入后面命令并回车:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

  • 按照提示重启你的电脑。

2.2.1.1 下载Docker Desktop
  • 选择合适的版本下载(通常选择稳定版)。
2.2.1.2 安装Docker Desktop
  • 下载完成后,双击安装文件并按照安装向导的指示进行操作。(傻瓜式安装即可)

注意:安装过程中可能需要你登录Docker Hub账户,如果没有账户,你可以在安装过程中创建一个。

2.2.1.3 完成安装并运行Docker
  • 安装完成后,Docker Desktop会自动启动。

  • 你可以在系统托盘中看到Docker的图标(一个小鲸鱼图标),表示Docker正在运行。

  • 为了验证安装是否成功,你可以打开命令行(CMD或PowerShell)并输入以下命令:

    arduino 复制代码
    docker run hello-world

如果安装成功,这个命令会下载一个测试镜像并运行它,你将看到一条消息表明Docker安装并运行正常。

2.2.2 其它系统安装

Mac安装参考:Install Docker Desktop on Mac | Docker Docs

Linux安装参考: Install Docker Desktop on Linux | Docker Docs

三、获取Docker镜像

3.1 Docker Hub

Docker Hub是一个由Docker推出的云端注册表服务,它提供了一个中心化的存储库,用于存储、管理和分享Docker镜像。Docker镜像是轻量级的独立软件包,包含了运行特定应用程序所需的所有文件、依赖和配置信息。它有以下特点和功能:

  • 镜像存储和分享Docker Hub允许用户将自己创建的Docker镜像上传到云端存储库,并与其他用户分享。这使得开发人员可以轻松地共享和获取现有的镜像,节省了构建和配置环境的时间和精力。

  • 官方镜像库Docker Hub维护了一个官方镜像库,其中包含了广泛的常用软件和服务的官方镜像,如UbuntuMySQLNGINX等。这些官方镜像经过官方认证,通常具有良好的质量和可靠性,方便用户快速启动和部署常见的应用程序。

  • 自动构建Docker Hub提供了自动构建功能,可与代码托管平台(如GitHubBitbucket等)集成。它可以监测代码仓库的更改,并在每次提交或推送代码时自动触发构建过程,生成新的镜像。这对于持续集成和持续部署(CI/CD)流程非常有用。

  • 版本控制Docker Hub支持对镜像进行版本控制。每个镜像都可以具有多个标签(tags),标识不同的版本。这使得用户可以根据需要选择特定的镜像版本,并轻松地管理和更新应用程序的不同版本。

  • 用户组织和访问控制Docker Hub允许用户创建组织(organizations),并基于团队或项目进行访问控制。这样,团队成员可以共享和协同管理镜像,并根据角色和权限来控制对镜像的访问。

  • Web界面和APIDocker Hub提供了一个直观的Web界面,使用户可以通过浏览器轻松地搜索、浏览和管理镜像。此外,它还提供了开放的API,允许开发人员通过编程方式与Docker Hub进行交互,实现自动化和集成。

3.2 搜索和选择适合的镜像

上面介绍了Docker的镜像仓库,下面我们来了解一下怎么搜索和选择适合的镜像。搜索和选择合适的镜像,一般分为以下几个步骤:

  • 在Docker Hub网站上搜索 :打开Docker Hub的网站,在搜索栏中输入你感兴趣的关键词,如应用程序的名称、操作系统、服务等。点击搜索按钮进行搜索。

  • 阅读镜像描述和标签 :在搜索结果中,点击感兴趣的镜像,进入该镜像的详细页面。仔细阅读镜像的描述、功能和用途等信息。还要注意查看镜像的标签(tags),以确定是否有适合你需求的特定版本。

  • 查看镜像统计数据和评级:在镜像详细页面,你可以查看镜像的统计数据,如下载次数、星级评级等。这些信息可以帮助你了解镜像的受欢迎程度和可信度。

  • 检查镜像的更新频率:查看镜像的最近更新时间,以确定该镜像是否经常得到维护和更新。经常更新的镜像通常意味着开发者对其进行了改进和修复,更适合使用。

  • 阅读用户评论和反馈:在镜像详细页面,查看其他用户对该镜像的评论和反馈。这些评论可以提供有关镜像质量、稳定性和问题的有用信息。

  • 查看镜像的文档和示例:一些镜像提供了相关的文档和示例,有助于你了解如何正确使用和配置该镜像。查看这些文档可以帮助你决定是否选择该镜像。

  • 考虑官方镜像和受信任的来源Docker Hub上有官方维护的镜像库,这些镜像经过验证和认证,通常具有高质量和可靠性。优先考虑使用官方镜像或来自受信任的开发者和组织的镜像。

  • 尝试并评估镜像:在决定使用特定镜像之前,可以尝试下载和运行该镜像,然后评估其性能、稳定性和满足需求的程度。

3.3 拉取镜像

  • 在GitHub上查找Docker镜像:使用GitHub的搜索功能,在搜索栏中输入与你感兴趣的镜像相关的关键词,如镜像名称、项目名称等。浏览搜索结果,找到你想要的镜像存储库。
  • 进入镜像存储库:点击搜索结果中的镜像存储库链接,进入该项目的GitHub存储库页面。

  • 查找Dockerfile:在GitHub存储库页面上,浏览存储库的目录结构,寻找名为"Dockerfile"的文件。Dockerfile是用于构建Docker镜像的指令文件。

  • 复制存储库链接:在GitHub存储库页面上,点击"Clone"或"Code"按钮,从弹出菜单中选择"Copy URL"或类似选项,复制存储库的URL链接。

  • 在本地使用Git克隆存储库:打开终端或命令行界面,使用以下命令将GitHub存储库克隆到本地:

bash 复制代码
git clone https://github.com/nginxinc/docker-nginx.git

克隆下来长下面这个样子:

拉取镜像这玩意说白了就是去仓库里面找找自己最合适的哪一款,然后使用git clone下来即可;这个没有什么特殊需要注意的。

四、运行第一个容器

上面已经把Docker拉取下来了,下面我们将介绍如何运行它。

  • 进入克隆的存储库目录:使用以下命令进入克隆的存储库目录:
  • 构建Docker镜像:在克隆的存储库目录中,使用以下命令根据Dockerfile构建Docker镜像:
shell 复制代码
docker build -t docker-nginx .

注意:命令最后的句点表示Dockerfile所在的当前目录。

  • 运行Docker容器:构建成功后,使用以下命令运行该镜像的Docker容器
shell 复制代码
docker run -d docker-nginx

到这里我们的第一个容器就已经运行起来了,当然实际要用后面还要做很多东西,比如映射端口,这里不多做赘述。

五、总结

好了好了,运行第一个容器到这里就介绍完毕了,在上面为初学者提供了一个关于Docker的全面指南,从Docker的基本概念到安装步骤,再到如何从Docker Hub获取和运行镜像。

最后,通过一个实际的例子,展示了如何从GitHub克隆一个NGINXDocker镜像,并在本地构建和运行容器。整个指南旨在帮助读者理解Docker的工作原理,方便大家快速开始自己的容器化之旅。

浅知拙见;如果有任何错误或建议,请随时指正和提出。

相关推荐
铁锤妹妹头发多1 小时前
新手用docker真**难受
运维·docker·容器
南猿北者10 小时前
docker容器
docker·容器
二十雨辰10 小时前
[linux]docker基础
linux·运维·docker
time never ceases11 小时前
使用docker方式进行Oracle数据库的物理迁移(helowin/oracle_11g)
数据库·docker·oracle
MonkeyKing_sunyuhua13 小时前
ubuntu22.04 docker-compose安装postgresql数据库
数据库·docker·postgresql
追风林13 小时前
mac m1 docker本地部署canal 监听mysql的binglog日志
java·docker·mac
€☞扫地僧☜€14 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
茶馆大橘14 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud
全能全知者16 小时前
docker快速安装与配置mongoDB
mongodb·docker·容器
阿尔帕兹18 小时前
构建 HTTP 服务端与 Docker 镜像:从开发到测试
网络协议·http·docker