在docker中构建nginx服务(部署)
2018-02-16 04:40
363 查看
本篇博文给大家介绍如何在docker容器中构建一个nginx服务,并且发布一个小网站。
首先介绍一下dockerfile
dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。
首先我们先创建dockerfile文件,存放在/root/docker_nginx下,命名为nginx_dockerfile
[root@localhost ~]# mkdir docker_nginx
[root@localhost ~]# touch docker_nginx/nginx_dockerfile
[root@localhost ~]# vi docker_nginx/nginx_dockerfile
nginx_dockerfile内容如下
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get install -y nginx
RUN echo '新年快乐,狗年大吉' >/usr/share/nginx/html/index.html
EXPOSE 80
解释一下:
FROM指令为后面的指令提供基础镜像
RUN指令会在前一条命令创建出的镜像的基础上创建一个容器,并在该命令运行结束后提交该容器为新镜像
EXPOSE指定了容器对宿主机开放的端口
接下来我们根据dockerfile来创建镜像
如上图,镜像已经创建完成。
从该镜像运行容器,我们需要在宿主机上指定一个端口与容器的端口做映射,如下:
[root@localhost docker_nginx]# docker run -d -p 80:80 --name web 8ad05e091619 nginx -g "daemon off;"
8b9e123d35819a059da47d10d19e4b0c27168a1b7d9ef54324504839fd0f817e
[root@localhost docker_nginx]#
可以看到docker进程已经运行,并且监听在宿主机的tcp80端口
我们来尝试访问下页面:
很尴尬,出现了乱码;
咋整呢,要么让容器能够对这个文本内容正确编解码,要么把网页的内容改掉(比如换成英文)
我比较懒,采用的是后一种
具体咋整呢,下一篇解决。
首先介绍一下dockerfile
dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。
首先我们先创建dockerfile文件,存放在/root/docker_nginx下,命名为nginx_dockerfile
[root@localhost ~]# mkdir docker_nginx
[root@localhost ~]# touch docker_nginx/nginx_dockerfile
[root@localhost ~]# vi docker_nginx/nginx_dockerfile
nginx_dockerfile内容如下
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get install -y nginx
RUN echo '新年快乐,狗年大吉' >/usr/share/nginx/html/index.html
EXPOSE 80
解释一下:
FROM指令为后面的指令提供基础镜像
RUN指令会在前一条命令创建出的镜像的基础上创建一个容器,并在该命令运行结束后提交该容器为新镜像
EXPOSE指定了容器对宿主机开放的端口
接下来我们根据dockerfile来创建镜像
如上图,镜像已经创建完成。
从该镜像运行容器,我们需要在宿主机上指定一个端口与容器的端口做映射,如下:
[root@localhost docker_nginx]# docker run -d -p 80:80 --name web 8ad05e091619 nginx -g "daemon off;"
8b9e123d35819a059da47d10d19e4b0c27168a1b7d9ef54324504839fd0f817e
[root@localhost docker_nginx]#
可以看到docker进程已经运行,并且监听在宿主机的tcp80端口
我们来尝试访问下页面:
很尴尬,出现了乱码;
咋整呢,要么让容器能够对这个文本内容正确编解码,要么把网页的内容改掉(比如换成英文)
我比较懒,采用的是后一种
具体咋整呢,下一篇解决。
相关文章推荐
- 使用jenkins、docker、consul、nginx搭建支持自动化构建部署以及弹性伸缩的集群系统详细教程
- 微服务部署之Maven插件构建Docker镜像
- 【Docker构建】- Nginx创建带Nginx服务的Centos Docker镜像
- Docker学习(1)基础命令 和 构建nginx web服务
- dockerfile构建一键部署fastdfs+nginx 以及重定向
- dockerfile构建nginx服务
- docker实战2 (docker swarm的应用,docker集群的构建,在docker集群中部署服务的创建与更新)
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
- nginx-1.8.0+php-5.6.15+mysql-5.6.27服务安装部署
- [转]构建企业服务之windows 2008 CA证书服务器部署
- Docker 部署nginx+tomcat 负载冗余
- 【Docker江湖】之创建Web应用服务镜像——Apache/Nginx
- tensorflow serving:bazel方式部署模型+docker方式部署模型及提供服务以及使用该服务介绍(总有一款适合你)
- Spring Cloud和Docker构建微服务
- linux+docker+nginx+tomcat部署web项目
- docker构建ssh服务的镜像
- 巧用Docker镜像仓库Harbor部署私有Mirror服务
- 构建自定义Docker镜像使用ApacheHttp服务的代理功能
- 安装及简单部署nginx服务
- Nginx转发服务给对应Docker中的 Phpfastcgi