Python项目打包为docker镜像并迁移

虚机1(centos7)下将项目打包为docker镜像

1.安装docker服务:
centos 下直接yum安装
yum install docker

2.修改docker仓库地址为国内:

3.编写Dockerfile, 如下:

# 基础镜像centos7
FROM centos:7

#添加项目、python安装包、pip list文件
ADD  ./DjangoBlog /opt/DjangoBlog
ADD ./Python-3.8.1 /opt/Python-3.8.1
ADD ./requirements.txt /opt/requirements.txt

#安装python所需依赖
RUN  yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel \
        sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel \
        && yum -y install gcc kernel-devel kenel-headers make bzip2 \
        && yum -y install gcc gcc-c++ zlib zlib-devel
        
# 安装python并配置环境
RUN  ./opt/Python-3.8.1/configure --prefix=/usr/local/python3 \
        && make && make install \
        && ln -s /usr/local/python3/bin/python3 /usr/bin/python3 \
        && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 \
        && pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/ \
        && pip3 install --upgrade pip
        
# 安装python三方包
RUN pip3 install -r /opt/requirements.txt 

# 启动命令
CMD ["python3", "/opt/DjangoBlog/manage.py", "runserver", "0.0.0.0:8888"]

4.制作镜像:
docker build -f Dockerfile -t blogapp:1.0 .
ps:
最后一个参数是.号,别忘了加
制作镜像可能是一个漫长的过程。。。
途中有问题会中止,需要检查问题并修改Dockerfile,然后重新开始。。。

5.查看制作的镜像:
docker images


制作的image

6.运行镜像,创建镜像实例,即运行容器:
docker run -it -p 192.168.5.109:8080:8888 blogapp:1.0


运行镜像

可以看到,项目已经正常开启,浏览器可以正常访问:


浏览器访问.png

7.导出镜像为tar包:
docker image save -o blogapp.tar blogapp:1.0

虚机2(ubuntu18)中直接运行虚机1打好的镜像

8.在新机导入tar包为镜像:
docker load < blogapp.tar


导入镜像

9.查看新导入的镜像:


新导入镜像

10.在新机运行镜像,后台开启容器:
docker run -it -p 192.168.5.110:8080:8888 blogapp:1.0


后台开启镜像

可以看到后台开启成功,浏览器访问新址:


浏览器新址访问正常

你可能感兴趣的:(Python项目打包为docker镜像并迁移)