Docker部署LNRP
时隔一个多月,终于更新了。这回带给大家一篇docker容器技术的文章。
首先声明一下,LNRP究竟是什么(Linux系统
+ Nginx服务 +
Redis数据库
+ Python3-tornado
)
这是一个充满坑的道路!
宿主系统是基于Windows做的,因为作者本人从事开发,对运维了解并不算多。在此感谢[帅帅]的帮助!(http://shuaiguoer.com/)
做这个实验首先需要三个前提条件
windwos安装docker
需要一个很不错的命令终端,如powershell,但强烈推荐cmder
联网
在
docker
官网下载完成之后,将其运行!
拉取镜像
# 拉取python3 的镜像环境 docker pull daocloud.io/library/python # 拉取redis数据库环境 docker pull daocloud.io/library/redis:latest # 拉取nginx的镜像环境 docker pull daocloud.io/library/nginx:stable-perl
因为需要python3,这次实验的后端是依靠于tornado编写的。
Linux系统是这三个组件所依赖的环境,因此不需要单独准备。
Docker实例化容器
在此,先将这片文章所需要的docker命令总结在一起
docker images # 查看所有镜像 dockek ps -a # 查看所有后台运行的实例化容器 docker run -itd -p 9000:9000 [images] # 实例化一个镜像,交互i 伪终端t 后台d 端口映射p 将容器9000端口映射到宿主机的9000端口,[images]镜像名。 docker rm -f [vessel] # 强制删除实例化容器,这里写ID。当然可以删除镜像 docker exec -it [vessel] {/bin/bash} # 交互伪终端进入一个实例化容器(写ID),而/bin/bash就是运行shell的环境。
在
docker中执行如下命令
# 执行 docker run -itd -p 8080:80 daocloud.io/library/nginx:stable-perl /bin/bash docker run -itd -p 9000:9000 daocloud.io/library/python /bin/bash docker run -itd -p 6380:6379 daocloud.io/library/redis:latest /bin/bash
然后继续写命令,也可以先看完在写。最好python这块单独开个终端
docker exec -it d66d591a86d8 /bin/bash# python实例化容器的id apt update # 更新apt apt install vim # 需要vim编辑器来对tornado后端进行操作 pip3 install tornado vim webtest.py # 将文件中的端口修改为9000,因为映射时写的就是9000 python3 webtest.py # python3 运行这个后端文件
针对nginx进行操作
docker exec -it cab3b65fca45 /bin/bash# 进入nginx中 apt update apt install vim cd /etc/nginx/conf.d/ vim default.conf exit
redis
方面就不需要进行配置,只需要知道怎么将镜像实例化,之后会讲docker-redis
。在
nginx
完成之后,打开你电脑的浏览器,输入URL127.0.0.1:8080 # 访问nginx 127.0.0.1:9000 # 访问tornado后端,如果你知道怎么编写后端的话。
这篇文章只讲docker部署nginx加python,tornado只是工具,当然也可以是django之类的。