使用docker建立静态网站应用-多种方式

 能承载静态网站的服务器有不少,本文使用,nginx、apache、tomcat服务器演示docker静态网站应用设置html

一,建立docker文件,nginx

不一样服务器的docker文件不同,下面分别建立nginx、apache、tomcat三个服务器的docker文件,其实主要就是区别于FROM标签于项目文件目录web

目录结构:docker

1,nginx 的 docker文件apache

FROM nginx
COPY ./www /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html/
RUN chown -R daemon:daemon * && chmod -R 755 * EXPOSE 80

2,apache的 docker文件vim

FROM httpd:alpine
COPY ./www/ /usr/local/apache2/htdocs/
WORKDIR /usr/local/apache2/htdocs/
RUN chown -R daemon:daemon * && chmod -R 755 * EXPOSE 80

3,tomcat的 docker文件tomcat

FROM tomcat:alpine
COPY ./www/ /usr/local/tomcat/webapps/ROOT/webapp
WORKDIR /usr/local/tomcat/webapps/ROOT/webapp #切换到项目目录
RUN chown -R daemon:daemon * && chmod -R 755 * #设置权限

这里建立了一个 名为 webapp的项目访问时url地址后面要加入/webapp,这里还要注意Tomcat默认端口是 8080bash

三个文件应用于不一样的环境部署你的网站,根据状况设置权限,也可不设置服务器

二,构建项目app

 docker build -t imageName .(注意后面的点,imageName最好是“hub帐号名/项目名”方便推送到公共库)

下面会显示构建过程

三,推送到公共仓库

须要先执行 docker login 登陆

docker push ejiyuan/webapp

四,在服务器上拉取项目

须要先执行 docker login 登陆

docker pull ejiyuan/webapp

执行docker images查看镜像是否存在

五,执行项目 

 docker run -d -p 8081:80  ejiyuan/webapp 

六,验证

直接访问宿主ip地址加 启动时给定的端口号8081或使用curl

curl http://192.168.99.100:8081

七,问题

这里已nginx为例以下若是你的项目默认页不是index.html,会出现 401或下面页面:

主要缘由是,没有指定默认页,使用下面命令登陆到 镜像中

docker exec -it containerId /bin/bash 
containerId 可使用 docker ps 获得,修改/etc/nginx/conf.d/default.cnf,容器中若是没有vim或vi 经过下面两个命令安装

apt-get update
apt update
apt install vim

或使用sed命令

sed -i '10c  index default.html;'  /etc/nginx/conf.d/default.conf

修改日后须要从新加载  

nginx -t #检查配置文件是否有误 
sevice nginx reload # 新加载配置文件

若是不存在 service 使用 exit 退出容器后,使用 docker restart containerId 从新启容器

 

9、参考文档

sed -i命令详解

docker 批量删除

Docker 快速删除全部容器

docker nginx 静态网站部署

docker 学习(九) docker部署静态网站

相关文章
相关标签/搜索