虚机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
6.运行镜像,创建镜像实例,即运行容器:
docker run -it -p 192.168.5.109:8080:8888 blogapp:1.0
可以看到,项目已经正常开启,浏览器可以正常访问:
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
可以看到后台开启成功,浏览器访问新址: