热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

纵观Docker(开发视角)

在本文中,会分析一份用用代码中的Dockerfile并将其容器化,最终以容器的方式运行.相关代码链接:https:pan.baidu.coms1WFKLWIInWqoWqkZLJ4

在本文中,会分析一份用用代码中的Dockerfile并将其容器化,最终以容器的方式运行.相关代码

链接: https://pan.baidu.com/s/1WFKLWIInWqoWqkZLJ4Z6Wg 提取码: r79p

基于Linux进行演示


进入仓库文件目录之下,查看其内容.


$ cd psweb

$ ls -l

total 28

-rw-rw-r-- 1 lg lg  341 9月  27  2017 app.js

-rw-rw-r-- 1 lg lg  216 9月  27  2017 circle.yml

-rw-rw-r-- 1 lg lg  338 9月  27  2017 Dockerfile

-rw-rw-r-- 1 lg lg  421 9月  27  2017 package.json

-rw-rw-r-- 1 lg lg  370 9月  27  2017 README.md

drwxrwxr-x 2 lg lg 4096 9月  27  2017 test

drwxrwxr-x 2 lg lg 4096 9月  27  2017 views


每个仓库中都包含一个名为Dockerfile的文件.Dockerfile是一个纯文本文件,其中描述了如何将应用构建到Docker镜像当中


查看Dockerfile的全部内容


$ cat Dockerfile

FROM alpine

LABEL maintainer="[email protected]"

# Install Node and NPM

RUN apk add --update nodejs nodejs-npm

# Copy app to /src

COPY . /src

WORKDIR /src

# Install dependencies

RUN  npm install

EXPOSE 8080

ENTRYPOINT ["node", "./app.js"]


构建完成后,就可以确认是否存在test:latest镜像.


$ docker image ls

REPO TAG IMAGE ID CREATED SIZE

Test latest f154cb3ddbd4 1 minute ago 55.6MB

...


读者现在已经拥有一个新的Docker镜像,其中包含了应用程序.从镜像启动容器,并测试应用

Linux代码如下


docker container run -d \

--name web1 \

--publish 8080:8080 \

test:latest


打开web浏览器,在地址栏中输入容器运行所在的Docker主机的DNS名称或者IP地址,并在后面加上端口号8080.然后就能看到web页面.



推荐阅读
  • 使用Flutternewintegration_test进行示例集成测试?回答首先在dev下的p ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 代理模式的详细介绍及应用场景
    代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • android ... [详细]
  • PreparedStatement防止SQL注入
    添加数据:packagecom.hyc.study03;importcom.hyc.study02.utils.JDBCUtils;importjava.sql ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • 从批量eml文件中提取附件的Python代码实现方法
    本文介绍了使用Python代码从批量eml文件中提取附件的实现方法,包括获取eml附件信息、递归文件夹下所有文件、创建目的文件夹等步骤。通过该方法可以方便地提取eml文件中的附件,并保存到指定的文件夹中。 ... [详细]
author-avatar
手机用户2502876011
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有