• 环境:Ubuntu
1. 安装docker
• curl -sSL https://get.daocloud.io/docker | sh
▾ 测试是否安装成功
• 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-8 EXPOSE 7500 ADD 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端口访问服务了