使用docker创建静态网站应用-多种方式
能承载静态网站的服务器有很多,本文使用,nginx、apache、tomcat服务器演示docker静态网站应用设置
一,创建docker文件,
不同服务器的docker文件不一样,下面分别创建nginx、apache、tomcat三个服务器的docker文件,其实主要就是区别于FROM标签于项目文件目录
目录结构:
1,nginx 的 docker文件
FROM nginx
COPY ./www /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html/
RUN chown -R daemon:daemon * && chmod -R 755 *
EXPOSE
2,apache的 docker文件
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文件
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默认端口是 8080
三个文件应用于不同的环境部署你的网站,根据情况设置权限,也可不设置
二,构建项目
docker build -t imageName .(注意后面的点,imageName最好是“hub账号名/项目名”方便推送到公共库)
下面会显示构建过程
三,推送到公共仓库
需要先执行 docker login 登录
docker push ejiyuan/webapp
四,在服务器上拉取项目
需要先执行 docker login 登录
docker pull ejiyuan/webapp
执行docker images查看镜像是否存在
五,执行项目
docker run -d -p : 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 重新启容器
九、参考文档
使用docker创建静态网站应用-多种方式的更多相关文章
- java创建线程的多种方式
java创建线程的四种方式 1.继承 Thread 类 通过继承 Thread 类,并重写它的 run 方法,我们就可以创建一个线程. 首先定义一个类来继承 Thread 类,重写 run 方法. 然 ...
- Python 创建字典的多种方式
1.通过关键字dict和关键字参数创建 >>> dic = dict(spam = 1, egg = 2, bar =3) >>> dic {'bar': 3, ' ...
- Java并发编程原理与实战五:创建线程的多种方式
一.继承Thread类 public class Demo1 extends Thread { public Demo1(String name) { super(name); } @Override ...
- 进入Docker容器的4种方式
进入Docker容器的4种方式 在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法. 进 ...
- 创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作
实例解析Docker如何通过commit,Dockerfile两种方式自定义Dcoker镜像,对自定义镜像的pull,push,rmi等常用操作,通过实例创建一个Python数据分析开发环境的Dock ...
- 特性attribute,声明和使用attribute,应用attribute,AOP面向切面,多种方式实现AOP
1 特性attribute,和注释有什么区别2 声明和使用attribute3 应用attribute4 AOP面向切面5 多种方式实现AOP ---------------------------- ...
- idea打包jar的多种方式
这里总结出用IDEA打包jar包的多种方式,以后的项目打包Jar包可以参考如下形式: 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven插件maven-a ...
- Spring学习总结(一)——Spring实现IoC的多种方式
控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中我们使用面向对象编程对象的创 ...
- Linux命令之ar - 创建静态库.a文件和动态库.so
转自:http://blog.csdn.net/eastonwoo/article/details/8241693 用途说明 创建静态库.a文件.用C/C++开发程序时经常用到,但我很少单独在命令行中 ...
随机推荐
- ISAPI筛选器及对ASP源文件的保护
ISAPI筛选器及对ASP源文件的保护 2009-04-21 01:45:57 标签:ISAPI 筛选器 ASP 源文件 保护 摘要:本文介绍了利用ISAPI筛选器保护ASP源文件的方法,并给出一个实 ...
- shiro验证(转)
http://blog.csdn.net/tch918/article/details/13765799
- m个小朋友手拉手站成一个圈,从第k个小朋友开始报数,报到n的那个小朋友退到圈外,然后他的下一位重新报“1”。这样继续下去,直到只剩下一个小朋友,求解这个小朋友原来站什么地方。
约瑟夫环问题. package pack; import java.util.*; public class demo_2 { static int a[]; public static void m ...
- 将TUM数据集的RGB-D数据集转化为klg格式
1.在github上下载代码png_to_klg git clone https://github.com/HTLife/png_to_klg 2.将png_to_klg目录下的associate.p ...
- ShellSort
#include <bits/stdc++.h> using namespace std; #define MAXSIZE 200000 typedef int KeyType; type ...
- expdp之include参数——实现表级别的expdp操作
需求是这样的:想将A库的某schema中的一部分表导入到B库的某schema中. 第一可以想到的是使用expdp工具,但是如何只挑选某些表呢,通过查看官方文档,include参数可以实现该需求. in ...
- QCAD 怎么把多余的线剪掉
QCAD 怎么把多余的线剪掉 如下所示如果我在 AutoCAD 中我是使用 Trim 的功能,但是在 QCAD 似乎不可行. 然后现在以上而有个 Divide,感觉有用,相当于线打断,然后再删除,这个 ...
- 20175202 《Java程序设计》第三周学习总结
20175209 2018-2019-2 <Java程序设计>第三周学习总结 教材知识点总结 1.编程语言发展阶段: 面向机器语言——面向过程语言——面向对象语言. 2.类声明: 类名必须 ...
- 深入理解JavaScript事件循环机制
前言 众所周知,JavaScript 是一门单线程语言,虽然在 html5 中提出了 Web-Worker ,但这并未改变 JavaScript 是单线程这一核心.可看HTML规范中的这段话: To ...
- c# 程序只能运行一次(多次运行只能打开同一个程序)
转自:https://social.msdn.microsoft.com/Forums/zh-CN/6398fb10-ecc2-4c03-ab25-d03544f5fcc9/2291420309357 ...