Docker入门系列之一:在一个Docker容器里运行指定的web应用

举报
汪子熙 发表于 2021/12/31 18:49:03 2021/12/31
【摘要】 实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始。首先使用命令docker ps确保当前没有正在运行的Docker实例。运行命令docker run -it nginx:然后我们另外开一个终端,用docker ps命令查看这个运行起来的容器实例,Status的Up 54 seconds意思是从该实例启动到现在已经经过了54秒。使用命令进入这个容器实例:docker ex...

实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始。

首先使用命令docker ps确保当前没有正在运行的Docker实例。

运行命令docker run -it nginx:
然后我们另外开一个终端,用docker ps命令查看这个运行起来的容器实例,Status的Up 54 seconds意思是从该实例启动到现在已经经过了54秒。

使用命令进入这个容器实例:

docker exec -it bbc5d48a761c /bin/sh

进入之后看到shell提示符#,我们就可以在nginx容器内执行一些常用命令了。

/usr/share/nginx/html就是nginx服务器内存放web应用的位置,现在我们只要想办法将我们的web应用放到这个文件夹里就可以了。

我提供了一个示例web应用,可以从我的github上获得:
https://github.com/i042416/jerrylist/tree/master/webapp

问题就是如何把这个web应用搞到容器内的对应文件夹里。

我使用的是通过docker volume实现docker和宿主机之间的数据共享。使用docker stop将原来的docker实例停掉,然后启动新的实例。

假设我把我提供的github里的webapp文件夹下载到~目录,然后用下面的命令行激昂webapp文件夹挂接到nginx容器内的同名文件夹:

docker run -d -p 1081:80 -v `pwd`/webapp:/usr/share/nginx/html/webapp --name jerry-custom nginx

在前一篇文章:Docker入门系列之一:在一个Docker容器里运行指定的web应用 里,

我们已经成功地将我们在本地开发的一个web应用部署到Docker容器里运行。

本文将介绍如何制作一个包含了这个web应用的Docker镜像。

镜像制作好之后,互联网上的任何其他用户都可以很方便地将您的镜像下载并运行。

新建一个文件夹jerry-build, 将您的web应用放到这个文件夹里,我的web应用放在文件夹webapp里。在jerry-build文件夹里新建一个文件dockerfile:

这个dockerfile内容很简单,就三行:

FROM nginx:stable
COPY webapp/ /usr/share/nginx/html/webapp/
RUN ls -la /usr/share/nginx/html/webapp*

我们执行命令docker build .

该命令成功得将包含了我们web应用的webapp文件夹内的所有文件打到nginx镜像内:

使用选项-t 指定生成镜像的名称jerry-nginx-image:

镜像成功生成后,就可以用docker run命令执行这个镜像了:

docker run -d -p 1082:80 jerry-nginx-image:1.0

使用命令docker images能查看到我们刚才制作的镜像,大小为109MB。

这个系列的下一篇文章会介绍如何将这个打好的镜像发布到Docker hub中。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。