• 环境:Ubuntu
1. 安装docker
▾ 测试是否安装成功
• docker run hello-world
2. 安装python3.6 及设置中文环境
▾ 编辑dockerfile文件
• vim dockerfile
FROM ubuntu
LABEL author="cityking"RUN apt-get update \&& apt-get install -y apt-transport-https vim iproute2 net-tools ca-certificates curl wget software-properties-common\&& add-apt-repository ppa:jonathonf/python-3.6\&& apt-get update\&& apt-get install -y python3.6\&& apt install -y python3.6-dev\&& apt-get install -y python3-distutils\&& wget https://bootstrap.pypa.io/get-pip.py\
&& python3.6 get-pip.py\&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2\&& apt-get install -y language-pack-zh*\&& ln -s /usr/bin/python3 /usr/bin/python\
ENV LANG C.UTF-8
▾ 构建镜像
▾ 在dockerfile文件所在目录执行
• docker build -t ubuntu-python3.6 .
3. 运行环境并搭建python开发环境
▾ 本地python 环境迁移
• pip freeze > requirement.txt
▾ 创建并运行容器进入shell环境
• docker run -it —rm -v requirement.txt:/root/requirement.txt ubuntu-python3.6
▾ 检查当前时区是否正确
▾ date -R
• 如果显示 Wed, 21 Aug 2019 15:26:22 +0800则不需更改时区
▾ 如果显示 Wed, 21 Aug 2019 15:26:22 +0000则需要更改时区
• apt update (为了安装tzdata)
• apt install tzdata (为了获取/usr/share/zoneinfo)
• rm /etc/localtime
• ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
• date (显示为当前时区时间)
▾ 到root目录执行
• pip install -r requirement.txt
▾ 提交改变之后的环境
• docker ps 查看当前容器的id 假设容器id为 961d503e76d2
▾ 提交环境
• docker commit 961d503e76d2 project_env
4. 拷贝项目文件、设置端口、以及启动命令
▾ 编辑dockerfile_http文件
• vim dockerfile_http
FROM project_env
ENV LANG C.UTF-8EXPOSE7500ADD mypro/ /root/mypro/WORKDIR/root/mypro
ENTRYPOINT ["python","manage.py","runserver"]
▾ 构建镜像
• docker build -t mypro -f dockerfile_http .
• 不指定-f参数是,默认为当前目录的dockerfile文件
5. 运行环境,映射端口7500
• docker run -it —rm -p 7500:7500 mypro 0.0.0.0:7500
6. 退出docker环境而不关闭服务
• ctrl + p + q
• 按住ctrl 然后依次按p和q
7. 至此就可根据7500端口访问服务了