python程序docker化部署

启动docker

systemctl start docker  #启动docker
systemctl enable docker #设置开机自启动docker
systemctl status docker #查看docker状态

步骤:

1、新建文件夹

mkdir docker_test

cd docker_test

2、创建Dockerfile文件,文件内容如下

FROM ubuntu:16.04


MAINTAINER LXY

ENV LANG C.UTF-8

#执行镜像中的provision.sh脚本
COPY provision.sh /home/
COPY python程序文件 /home/
RUN chmod a+x /home/provision.sh
RUN /home/provision.sh


#解决时区问题
RUN apt-get update -y && apt-get upgrade -y
# 安装,中国用户填写[Asia/Shanghai] ,表示亚洲/上海 ,东八区
RUN apt-get install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3、创建provision.sh脚本,内容如下:

#!/bin/bash
set -e

apt-get update
#安装vim
#apt-get -y install vim

#解决vim中文乱码
#vim /etc/vim/vimrc
#set fileencodings=utf-8,gbk,utf-16le,cp1252,iso-8859-15,ucs-bom
#set termencoding=utf-8
#set encoding=utf-8
#
#安装sqlite3
apt-get install libsqlite3-dev
apt-get -y install gcc

#解决ssl No module named _ssl
apt-get install libssl-dev -y
#
apt-get install make

apt-get -y install zlib*

#安装wget
apt-get -y install wget

#下载python
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
#解压tgz
tar -xvzf Python-3.6.5.tgz

#
cd Python-3.6.5
./configure --with-ssl
make && make install

ln -sf /usr/local/bin/python3 /usr/bin/python

#解决opencv 报错
apt-get -y install libgl1-mesa-glx

apt-get install -y libglib2.0-dev 
apt-get install -y libsm6 libxext6 libxrender-dev


#删除安装文件
#rm -R Python*

#升级pip
python3 -m pip install --upgrade pip

pip3 install -r requirements.txt -i https://pypi.douban.com/simple


#mysql
#cd /home
#wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb






#中文编码问题
#export  LANG=C.UTF-8

#解决cv2 问题
#apt-get -y install libgl1-mesa-glx
#python -V

#升级pip
#python -m pip install --upgrade pip

3、创建镜像

docker build -t image_name .

# image_name 为创建的镜像名称,. 表示当前目录(docker_test)

# 执行该命令会自动按照Dockerfile文件中的内容生成镜像

4、创建run.sh脚本文件,用于后面创建docker容器后开启自动运行python程序

#!/bin/bash
#python.sh
cd /home/src
export  LANG=C.UTF-8
nohup python3 filename.py  >/home/out.log 2>&1    #后台运行并保存日志文件

5、创建容器并运行

docker run -it -d -p 11883:45055 --restart=always --name 容器名 镜像ID /bin/bash ./run.sh
#-d 后台运行 -p 指定端口映射  11883 主机端口 45055容器端口  --restart=always 容器开机自启动 
# /bin/bash ./run.sh 容器启动时自动运行脚本

容器保存为镜像

docker commit 容器名称 镜像名称

镜像备份

docker save -o my_image.tar 镜像名称

镜像迁移与恢复

docker load -i my_image.tar

进入容器

docker exec -it 容器名称或id /bin/bash     # 进入
exit   # 退出

停止容器

docker stop 镜像名称或id

启动容器

docker start 容器名称或id

重启容器

docker restart 容器名称或id

删除容器

docker rm 容器名称或id

删除镜像

docker rmi 镜像名称或id

查看容器

docker ps   # 查看正在运行的容器
docker ps -a  # 查看所有容器,包括未删除的历史容器

查看镜像

docker images

拷贝本地文件到容器

docker cp 本地文件路径 容器id:路径  # 本地到容器
docker cp 容器id:文件路径 本地路径  # 容器到本地

解决python  缺少_bz2

链接:https://pan.baidu.com/s/1XWKQfJPhtrcTwG62LhQ82Q
提取码:fdxy

备注:

docker run -itd --rm --name python  python:3.5-slim-stretch

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nice七仔爱地球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值