Docker学习笔记(终)
最后用Docker在服务器部署一个开源博客系统
首先现在网上下载jpress的包

解压后编写Dockerfile文件

接着docker build 制作镜像,然后docker run运行镜像。

接着我们访问服务器8080端口(记得开放防火墙,修改安全组)

由图中看到,jpress是可以成功访问的,但是jpress还依赖mysql,所以需要运行一个mysql容器。
首先从镜像中心下载一个mysql镜像。

在镜像中心看到mysql镜像启动可选参数。

运行docker run命令。

输入docker ps命令查看容器运行情况,可以看到两个容器都成功启动。

接着我们访问服务器的8080端口下的jpress,发现jpress已经成功部署。

最后我们需要用域名访问博客的话,还需要用nginx做一层代理转发。
首先我们需要启动nginx容器,然后进入容器内部找到nginx配置文件的地址。发现它在/etc/nginx/conf.d内

接着在服务器上创建一个conf.d文件夹,生成一个default.conf文件,复制nginx容器内部的default.conf文件的内容,然后修改里面代理的路径。

server_name修改成自己的域名,然后再location下加上一句proxy_pass让nginx代理到宿主机ip的8080端口,这一步实现了nginx转发请求到tomcat容器。

接着输入sudo docker run -d -p 80:80 -v /develop/jpress/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf hub.c.163.com/library/nginx:latest命令启动nginx容器,-v 参数表示把本地的文件挂载到容器内部,这样我们就不需要去到容器内部修改配置文件,只需要在本地修改配置文件。
容器启动后,访问服务器ip,由于我域名还没有备案,所以我是用服务器ip访问的,可以看到nginx成功转发到了tomcat。

最后我们把代理转发到tomcat容器里面的jpress,继续修改本地的default.conf文件,修改如下图所示。

修改好了defau.conf文件之后,我们继续访问服务器。
但是出现了一个问题,页面的样式失效了,经过排查之后发现,原来是我没有转发js和css文件。

那么我们需要在nginx的配置文件上加上对js和css文件的转发。
修改完配置文件之后重新启动nginx容器。

最后,我们去检查这次转发是否正确,访问服务器,发现这次代理转发是成功的!

这从从0开始学习docker,了解了docker的原理,docker的优势,一步一步用docker去实现了博客的搭建,发现docker是真的非常好用,省去了非常多配置服务器环境的工作。只需要安装一个docker,再从镜像中心拉取别人打包好的镜像,部署一个项目只需要几行命令,真的由衷的觉得docker的设计者太厉害了。