Docker
部署后端
基础环境是在
阿里云服务器
参考文章,见本博客栏
Dockerfile部署LNMP
后端连接
redis
时,需要注意IP
地址的问题。
Docker
容器在生成镜像时,berdge
网络(桥接网络)是可以访问到容器外的宿主系统网络。也就是说,要连接的redis
的ip
地址请写外部的ip
地址。阿里云的服务器写内网地址。
文件结构
test文件夹 ---> dockerfile
---> 项目文件夹 ---> test.py(后端文件)
---> static
...
在
test文件夹
下,执行命令docker build -t test_tornado .
后边有点,镜像名是
test_tornado
,可以更改
这样就可以啦!
看一下
dockerfile
里面都写了什么# from Images to daocloud.io/library/python FROM daocloud.io/library/python MAINTAINER Auther haitanghuadeng = https://github.com/haitanghuadeng COPY ["yunzhou", "/"] RUN pip3 install tornado RUN pip3 install python_redis RUN rm -irf /yunzhou/ EXPOSE 80 EXPOSE 443
FROM
代表镜像依赖于什么镜像第二行是写作者是谁,还是本文作者我啊!
COPY
是将test文件夹
下的项目文件夹
复制到新镜像的/
根目录。
RUN
是要在镜像中执行的命令,阻塞型在最后。
EXPOSE
开放端口,可以理解为阿里云的安全组,不开放不让用。可以写多个,跟在后边。
dockerfile
可以被用在网络上,文件本身可以在OSS
对象存储服务中。或者是链接资源中URL
.
在执行完命令之后,得到一个新的镜像。如果你需要图文,可以去我的博客中看一下
dockerfile部署LNMP
,不过那个时候是在windows
上的docker
。
创建容器,执行下面的指令。
docker run -itd -p 8080:80 -p 443:443 test_tornado python3 test.py
两个
-p
,8080
代表外部端口,80
代表容器内部端口。当然这个时候不需要将redis
的端口暴露出来,因为要访问的数据库是在外边。如果只暴露一个端口,只需要写一个-p
。
查询容器
# 查询所有的容器,包括停止的,推荐! docker ps -a
# 查询正在运行的容器 docker ps
关闭删除容器
docker stop 容器ID docker rm 容器ID
删除镜像
docker rmi 镜像名
删除时,需要注意该镜像没有被使用,如果正在被使用,是无法删除的。
好了,本篇文章就到这里了,希望能够帮助到看文章的小伙伴们!如果没有帮助到,还请见谅!