新版博客已经初步升级完成,为了防止Google搜索引擎降权,老版博客和新版博客都可以访问。 SiteMap RSS Github
Docker下部署Django项目
嘉美伯爵   2019年9月9日 22:31   Python   Docker  Django  21  

docker-compose部署项目

使用docker-compose我们可以很方便的对应用进行打包

项目结构

  • 示例代码:https://gitee.com/jiameibojue_tech/test_repository/tree/master/test_docker

  • Dockerfile
FROM python:3.6

# 创建工作目录
RUN mkdir /home/test

#设置工作目录
WORKDIR /home/test

#将当前目录加入到工作目录中
ADD . /home/test

# 安装依赖
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

#对外暴露端口
EXPOSE  8000

#设置环境变量
ENV SPIDER=/home/test
  • docker-compose.yml
version: "3"

services:

  db:
    image: mysql:5.7
    expose:
      - "3306"
    environment:
      - MYSQL_HOST=127.0.0.1
      - MYSQL_DATABASE=blog
      - MYSQL_USER=root
      - MYSQL_PASSWORD=416798
      - MYSQL_ROOT_PASSWORD=416798
    restart: always  # 若容器运行出现问题,会自动重启容器

  web:
    build: ./blog
    ports:
      - "8000:8000"
    volumes:
      - ./blog:/blog
      - /tmp/logs:/tmp
    command: bash start.sh  # 执行命令,有多种格式
    links:
      - db
    depends_on:
      - db
    restart: always
  • setting.py

docker部署项目

docker 容器通讯方式

  • 外部通信

  • 内部通信

docker 相关操作

  • 查看logs
docker logs --tail 20 <CONTAINER>
  • 查看容器

  • 查看镜像

  • 进入容器

  • 列出所有容器id
docker ps -aq
  • 停止所有容器
docker stop $(docker ps -aq)
  • 删除所有容器
docker rm $(docker ps -aq)
  • 删除所有镜像
docker rmi $(docker images -q)
  • 删除所有不使用的镜像(二选一)
docker image prune --force --all
docker image prune -f -a
  • 删除所有停止的容器
docker container prune
  • 复制文件
docker cp mycontainer:/opt/file.txt /opt/local/docker cp /opt/local/file.txt mycontainer:/opt/

参考文档

https://blog.csdn.net/u013096666/article/details/76522507 https://blog.csdn.net/frank_good/article/details/82587437 https://blog.csdn.net/skh2015java/article/details/82659688 https://blog.csdn.net/yhcvb/article/details/45696961 https://www.jianshu.com/p/658911a8cff3 https://www.cnblogs.com/linjiqin/p/8608975.html django开发-在Docker中部署django项目

停止、删除所有的docker容器和镜像

用Docker部署Flask应用

使用Docker部署Django服务

Docker - 容器之间的通信