前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云cvm服务器上利用dockerfile构建nginx容器

腾讯云cvm服务器上利用dockerfile构建nginx容器

原创
作者头像
用户8639654
修改2021-08-06 17:27:45
1.5K0
修改2021-08-06 17:27:45
举报
文章被收录于专栏:云计算运维

购买腾讯云服务器后需要搭建Dockerfile构建nginx

其实很简单,只需要几步就可以实现了

1 创建dockerFile文件

代码语言:javascript
复制
vim Dockerfile

2 编写指令

代码语言:javascript
复制
#first dockerfile

FROM ubuntu:latest
MAINTAINER xiaolin "xiaolin_peter@163.com"
# RUN apt-get update
# RUN apt-get install -y vim 

# RUN apt-get install -y nginx
# 以上执行会创建 3 层镜像。可简化为以下格式:
RUN apt-get update && apt-get install -y vim &&  apt-get install -y nginx
# 如上,以 && 符号连接命令,这样执行后,只会创建 1 层镜像。
#指定运行该镜像的容器使用的端口为 80
# docker run的时候 一定要加上 -P
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

指令描述

代码语言:javascript
复制
RUN apt-get install -y vim // 这一行指令是为了让生成的镜像容器可以进行vim编辑 

第3行 代表后面的所有的指令都依赖于当前设置的镜像 ubuntu:latest

第13行 创建启动容器的时候执行的命令

代码语言:javascript
复制
 docker run --name nginx_1 -d -p 8080:80 nginx_demo

相当于

代码语言:javascript
复制
docker run --name nginx_1 -d -p 8080:80 nginx_demo nginx -g "daemon off;"

3 创建镜像

代码语言:javascript
复制
docker build -t nginx_demo .

其中nginx_demo为镜像名

4 创建nginx容器

代码语言:javascript
复制
docker run --name nginx_1 -p 8082:80 -d nginx_demo

# 其中nginx_demo为镜像名 nginx_1 为容器名 8082为主机端口 80为镜像容器暴露端口

5 测试结果

代码语言:javascript
复制
curl http://ip:8082

注意 : 192.168.0.146是我这边的ip,curl获取的内容来自哪一个页面呢?别急啊,接下来我慢慢描述。

首先进入nginx1容器

代码语言:javascript
复制
docker exec -it nginx_1 exec 

容器内部目录详情

代码语言:javascript
复制
cd /usr/share/nginx/html
cat index.html

curl获取的内容其实就是/usr/share/nginx/html/index.html的内容

接下来我们来证实一下

修改index.html

代码语言:javascript
复制
cd usr/share/nginx/html
rm -f *
echo hello world>>index.html

重启nginx_1容器

代码语言:javascript
复制
docker restart nginx_1
curl 192.168.0.146:8082

到这里,有同学感觉是不是有点出乎意料,和预期不相符。其实还要修改一个配置文件

继续进入容器

代码语言:javascript
复制
docker exec -it nginx_1 exec 

修改/etc/nginx/sites-enabled的default文件

代码语言:javascript
复制
cd /etc/nginx/sites-enabled
vim defalut

在location / 内部加上下面两句话

代码语言:javascript
复制
root /usr/share/nginx/html
index index.html index.htm

接下来我们继续验证

代码语言:javascript
复制
docker restart nginx_1
curl 192.168.0.146:8082

接下来就看到我们的结果了吧

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档