Docker 安装和 Flask项目部署

linux 安装docker

yum在线安装

在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看

uname -r
#3.10.0-1160.11.1.el7.x86_64
1. 查看是否已安装docker列表
yum list installed | grep docker
2. 安装docker
yum -y install docker

-y表示不询问安装,直到安装成功,安装完后再次查看安装列表
在这里插入图片描述

3. 启动docker
systemctl start docker
4. 设置为开机启动
systemctl enable docker.service
5. 查看docker服务状态
systemctl status docker

在这里插入图片描述
上图表示docker已成功启动

离线安装
1. 下载安装包

安装包官方地址:https://download.docker.com/linux/static/stable/x86_64/,可以先下载到本地,然后通过ftp工具上传到服务器上,或者在服务器上使用命令下载

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz
2. 解压
tar -zxvf docker-18.06.3-ce.tgz
3. 将解压出来的docker文件复制到 /usr/bin/ 目录下
cp docker/* /usr/bin/
4. 在/etc/systemd/system/目录下新增docker.service文件,内容如下,这样可以将docker注册为service服务
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
  
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
  
[Install]
WantedBy=multi-user.target

此处的–insecure-registry=127.0.0.1(此处改成你私服ip)设置是针对有搭建了自己私服Harbor时允许docker进行不安全的访问,否则访问将会被拒绝。

5. 启动

给docker.service文件添加执行权限

chmod +x /etc/systemd/system/docker.service 

重新加载配置文件(每次有修改docker.service文件时都要重新加载下)

systemctl daemon-reload    

启动

systemctl start docker

设置开机启动

systemctl enable docker.service

查看docker服务状态

systemctl status docker

使用docker 封装flask项目

装备
1. 导出项目第三方依赖包至requirements.txt
pip freeze >requirements.txt
2. 创建gunicorn.py

Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。
和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点。

# 监听端口
bind = '0.0.0.0:8000'
# 工作模式
worker_class = 'gevent'  # 采用gevent库,支持异步处理请求,提高吞吐量 除了gevent还有eventlet

# 并行工作进程数(我采用跟CPU核心数一致)
# workers = multiprocessing.cpu_count() * 1
workers = 5 # 定义同时开启的处理请求的进程数量,根据网站流量适当调整

# 设置守护进程
daemon = False

# 显示现在的配置,默认值为False,即显示。
check_config = False

# 设置日志记录水平
loglevel = 'debug'

# 设置错误信息日志路径
errorlog = '/home/slp/Project/StockQTS/logs/error.log'  #/root/project/BlueWhale/logs/error.log    /home/slp/Project/BlueWhale/logs/error.log
# 设置访问日志路径
accesslog = '/home/slp/Project/StockQTS/logs/access.log' #/root/project/BlueWhale/logs/access.log   /home/slp/Project/BlueWhale/logs/access.log

可以使用gunicorn命令来测试是否可以正确运行,命令如下,打开网址127.0.0.1:80,将会打开我们的网站。

gunicorn manage:app -c gunicorn.py
3. 创建Dockerfile文件
FROM python:3.7
WORKDIR /home/slp/Project/StockQTS

COPY requirements.txt ./
RUN pip install -r requirements.txt -i https://pypi.douban.com/simple

COPY . .

CMD ["gunicorn", "manage:app", "-c", "./gunicorn.py"]
构建Docker镜像
1. 进入项目文件夹
cd /home/slp/Project/StockQTS
2. 构建镜像,输入如下命令
sudo docker build -t 'stack_flask' .

然后会执行六步操作,依赖多的话安装依赖会比较费时间。

3.查看镜像
sudo docker images

在这里插入图片描述
自制的镜像就弄好了,可以在本地跑跑,实验下

上传镜像到阿里云仓库
1. 在阿里云上创建一个自己的Docker仓库。

在这里插入图片描述
在这里插入图片描述

2. 上传镜像

上传镜像之前需要在仓库管理–>访问凭证中设置登录密码。
在这里插入图片描述
登录

sudo docker login --username=你的阿里云用户名 registry.cn-shenzhen.aliyuncs.com
Password: 
Login Succeeded

输入密码,密码就是你刚设置访问凭证的密码
推送
输入以下两行命令,将镜像推送到Registry

docker tag [镜像的ID] registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:[镜像版本号]

在这里插入图片描述
执行完就可以了。

3. 拉取镜像
sudo docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名:[镜像版本号]

查看是否拉取 下来

sudo docker images
4. 运行
sudo docker run -itd -p 8000:8000 --name stock_flask 

那么到这里 Flask 项目已经成功部署。更新项目的时候,维护好配置文件,build一下,push 上去,在服务器 pull 下来,重新运行即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值