Docker如何部署您的第一个应用程序

 更新时间:2019年12月25日 10:39:14   作者:唐光辉  
这篇文章主要介绍了Docker如何部署您的第一个应用程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

上一篇,您已经完成了Docker Desktop安装,并启用了Kubernetes,接下来就可容器化部署应用程序了。通常,开发工作流包括如下几点:

1、首先创建Docker镜像,为应用程序的每个组件创建和测试单个容器。

2、将容器和所支持的基础设施组装成一个完整的应用程序,可以用Docker stack file或者Kubernetes的YAML来实现。

3、测试、共享和部署完整的容器化应用程序。

在本篇幅中,我们将集中于此工作流的步骤1:基于现有的容器来创建镜像。请记住,Docker镜像捕获了容器化进程将在其中运行的私有文件系统;我们需要创建一个镜像,其中正好包含我们的应用程序需要运行的内容。

容器化开发环境比传统开发环境更容易设置,一旦您学习了如何构建镜像,我们将在下面讨论。这是因为容器化的开发环境会将应用程序所需的所有依赖项隔离在Docker镜像中;除了Docker之外,不需要在开发计算机上安装任何东西(即开发环境的部署仅依赖于Docker镜像)。这样,您就可以轻松地为不同的堆栈开发应用程序,而无需更改开发机器上的任何环境。

配置

1、从GitHub克隆用于演示的示例项目。

git clone -b v1 https://github.com/docker-training/node-bulletin-board
cd node-bulletin-board/bulletin-board-app

这是一个简单的公告板应用程序,用node.js编写。在这个例子中,让我们假设是您编写了这个应用程序,现在正试图将其容器化部署起来,目录结构如图1.1所示。

图1.1

查看名字为Dockerfile的文件,Dockerfile文件描述了如何为容器组装私有的文件系统,并且还包含了一些描述如何基于此镜像运行容器的元数据。公告板应用程序Dockerfile如图1.2所示。

图1.2

容器化部署应用程序的第一步是编写Dockerfile。您可以把这些Dockerfile命令当作是一个创建镜象的步骤。这个步骤如下:

1、使用版本号6.11.5的镜像作为本次构建的基础镜像。6.11.5基础镜像是由node.js官方提供的镜像

2、指定镜像文件系统的工作目录为/usr/src/app,即每次登录基于该镜像创建的容器,目录会自动切换到/usr/src/app

3、将package.json文件复制到镜像的当前位置,即/usr/src/app/package.json

4、在镜像文件系统中运行npm install命令(它将读取package.json以确定应用程序的节点依赖关系,并安装它们)

5、将应用程序的其余源代码从主机复制到镜像中。

您可以看到,这些步骤与您在主机上设置和安装应用程序时可能采取的步骤大致相同,但使用Dockerfile允许我们在一个可移植、独立的Docker镜像(node.js官方镜像)再次构建。

上面的步骤为镜像构建了文件系统,但是Dockerfile中还有一行,CMD命令行。CMD ["要运行的程序","参数1","参数2"] 是告诉容器启动时要运行的命令或脚本,Dockerfile中命令告知此镜像要支持的容器化进程是npm start。

注意:Dockerfile只能有一条CMD命令,如果有多条,则执行最后一条。

一个Dockerfile始终是从FROM命令开始,上述是一个简单的Dockerfile文件,还有更多的Dockerfile指令,请参阅Dockerfile reference(https://docs.docker.com/engine/reference/builder/)。

构建镜像并测试

现在我们有了源代码和Dockerfile,是时候构建我们的第一个镜像了,并确保从该镜像启动的容器能按预期工作。

注意:本示例使用的是Linux容器。使用Docker Desktop的用户,右键单击系统托盘中的Docker徽标,确保您的环境正在运行Linux容器,若不是,请点击“Switch to Linux containers...",如图1.3所示,我当前演示环境使用的已是Linux容器。

图1.3

1、进入Powershell,并确保您当前目录是node-bulletin-board/bulletin-board-app,如图1.4所示,执行命令

# docker image build -t bulletinboard:1.0 .

图1.4

在构建最后会输出如下字样,表示构建镜像成功。

Successfully built 49f9b9fb7daf

Successfully tagged bulletinboard:1.0

上述命令表是创建一个名为bulletinboard的镜像(image),tag为1.0,如图1.5所示。

图1.5

2、基于bulletinboard镜像运行一个名为bb的容器并以后台方式运行,将容器内部端口8080,映射到宿主机的8000端口上。

# docker container run --publish 8000:8080 --detach --name bb bulletinboard:1.0

我们可以使用如下命令来查看run指命后可以跟哪些参数

# docker container run --help

我们登录到容器,查看到当前目录就是Dockerfile中设置的工作目录,如图1.6所示。

图1.6

3、通过http://localhost:8000来访问您的应用,您将看到如下界面,如图1.7所示,则表示应用容器化部署成功,接下来就是进行测试、构建、发布、分享等过程。

图1.7

4、删除一个容器,即表示该容器的生命周期结束。

# docker container rm --force bb

总结

完成上述操作后,我们已经能够对应用程序执行一个简单的容器化,并确认我们的应用程序在其容器中成功运行。下一步将是编写Kubernetes 的yaml文件,描述如何在Kubernetes上运行和管理容器。

另外,我们应该要加强练习使用Dockerfile构建镜像。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • docker将镜像打包为.tar包实现方法

    docker将镜像打包为.tar包实现方法

    使用tar包格式进行压缩,方便在不同的docker主机之间进行迁移和备份,下面这篇文章主要给大家介绍了关于docker将镜像打包为.tar包的实现方法,需要的朋友可以参考下
    2024-07-07
  • Docker容器中的Postgresql备份脚本异常解决

    Docker容器中的Postgresql备份脚本异常解决

    本文基于K8S中Docker容器对postgres数据库进行备份的操作,但是提示报错,报错信息为kubectl command not found,本文就来介绍一下报错信息的分析及其解决办法,感兴趣的可以了解一下
    2023-08-08
  • 修改Docker镜像默认存储位置的方法(解决方法)

    修改Docker镜像默认存储位置的方法(解决方法)

    这篇文章主要介绍了修改Docker镜像默认存储位置的方法,如果上面运行 Docker 服务,经过长时间的使用,会使原本就比较大的分区越来越不够用。如何更好地的处理这个问题呢,本文给出解决方案,需要的朋友一起看看吧
    2021-04-04
  • docker部署运行jar全过程

    docker部署运行jar全过程

    这篇文章主要介绍了docker部署运行jar全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 最详细的docker中安装并配置redis(图文详解)

    最详细的docker中安装并配置redis(图文详解)

    这篇文章主要介绍了最详细的docker中安装并配置redis(图文详解),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • skywalking agent 关联docker镜像的多种方法

    skywalking agent 关联docker镜像的多种方法

    Apache SkyWalking 提供了多种方式来部署和使用 SkyWalking Agent,包括在 Docker 容器中运行的应用,本文给大家分享几种方式将 SkyWalking Agent 集成到你的 Docker 应用中,感兴趣的朋友一起看看吧
    2025-04-04
  • docker容器的创建及常用操作命令详解

    docker容器的创建及常用操作命令详解

    这篇文章主要为大家介绍了docker容器的创建及常用操作命令详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Docker搭建Redis主从复制的实现步骤

    Docker搭建Redis主从复制的实现步骤

    本文主要介绍了Docker搭建Redis主从复制的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Docker的镜像制作方法详解

    Docker的镜像制作方法详解

    这篇文章主要介绍了Docker的镜像制作方法的相关资料,文章讲解了Docker镜像的基本原理、结构和制作方式,镜像是创建Docker容器的基础,需要的朋友可以参考下
    2024-10-10
  • Docker Windows下如何安装详细介绍(图文)

    Docker Windows下如何安装详细介绍(图文)

    这篇文章主要介绍了Docker Windows下如何安装详细介绍(图文)的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论