您的位置:首页 > 运维架构 > Docker

在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端口



我们来尝试访问下页面:



很尴尬,出现了乱码;

咋整呢,要么让容器能够对这个文本内容正确编解码,要么把网页的内容改掉(比如换成英文)

我比较懒,采用的是后一种

具体咋整呢,下一篇解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker