文章目录

  • 1. Docker简介
  • 2. 虚拟化部署环境的重要性
  • 3. Vmware和Docker区别
  • 4. CentOS下安装Docker
    • 4.1 关闭selinux服务
    • 4.2 安装Docker服务
    • 4.3 阿里云centos安装docker
  • 5. DuckerHub
    • 5.1 什么是DuckerHub
    • 5.2 腾讯配置Ducker加速器
    • 5.3 阿里配置Docker加速器
  • 6. Docker环境的常用命令
    • 6.1 Docker镜像和容器的关系
    • 6.2 常用的Docker命令
      • 6.3.1 镜像操作相关指令
      • 6.3.2 容器操作相关指令
  • 7. 创建python容器的必要技术
    • 7.1 Docker网络
      • 7.1.1 Docker环境会给容器动态分配IP地址,所以我们要想办法让他绑定一个固定的IP
      • 7.1.2 单独创建Docker内部网段
    • 7.2 容器端口映射
    • 7.3 目录挂载
  • 8. 创建python容器
    • 8.1 创建python容器
    • 8.2 为pip加速
  • 9. 创建mysql容器
    • 9.1 下载MySQL镜像
    • 9.2 创建MySQL容器
    • 9.3 创建数据表,写入记录
  • 10. 项目部署
  • 11. Pypy部署环境
    • 11.1 介绍Pypy运行环境
    • 11.2 下载Pypy镜像,创建Pypy容器

1. Docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

总的来说:Docker就是一个轻量级的虚拟机

2. 虚拟化部署环境的重要性

  • 直接把程序安装或部署到linux上,很容易引发资源冲突
  • 程序卸载不干净,导致无法安装和部署新程序
  • 每次部署之前都要安装很多软件,修改复杂的配置文件
  • 无法让服务器硬件资源实现多租户服务
  • 增大了在linux上部署集群和分布式的难度

3. Vmware和Docker区别

4. CentOS下安装Docker

4.1 关闭selinux服务

  • selinux是CentOS系统的捆绑安全服务程序,但因为其安全策略太严格,所以建议关闭

  • 修改:/etc/selinux/config 文件,设置SELINUX=disabled

  • 保存,重启系统:reboot

4.2 安装Docker服务

4.3 阿里云centos安装docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start注意:其他注意事项在下面的注释中
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。
# yum list docker-ce-selinux- --showduplicates | sort -r
# sudo yum -y install docker-ce-selinux-[VERSION]# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令
# 经典网络:
# sudo yum-config-manager --add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
# VPC网络:
# sudo yum-config-manager --add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo

5. DuckerHub

5.1 什么是DuckerHub

5.2 腾讯配置Ducker加速器

  • 执行命令: curl -sSL https://get.daocloud.io/daotools/st_mirror.sh | sh -s http://f1361db2.m.daocloud.io

5.3 阿里配置Docker加速器

  • 登录阿里云服务器,搜索容器镜像服务,找到镜像中心下的镜像加速器

  • Docker版本在1.10.0以上的直接按照上面的步骤操作,然后重启Docker

  • 地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

6. Docker环境的常用命令

6.1 Docker镜像和容器的关系

  • 什么是Docker镜像

  • 什么是Docker容器

6.2 常用的Docker命令

6.3.1 镜像操作相关指令
  • 安装python镜像: docker pull python:3.7
  • 查看安装的镜像: docker images
  • 查看指定的镜像的详细信息: docker inspect python:3.7
  • 将指定的镜像打包成压缩包: docker save python:3.7 > /root/python.tar
  • 删除docker里的镜像: docker rmi python:3.7
  • 将压缩文件导入到dockers中,将其变成镜像: docker load < /root/python.tar
6.3.2 容器操作相关指令
  • 创建并运行容器: docker run -it --name=demo python:3.7 bash

    • -it:交换参数,bash:命令行
    • 可以在该环境下查看自己的python版本和pip版本

  • 退出并停止容器: exit

  • 查看容器状态: docker ps -a

  • 启动容器: docker start demo1

  • 暂停容器: docker pause demo1

  • 恢复容器: docker unpause demo1

  • 进入容器(容器必须是运行的状态): docker exec -it demo1 bash

    • 退出容器: exit (注意:使用exec进入容器用exit退出只会退出容器,并不会关闭容器)
  • 查看指定容器的详细信息: docker inspect demo1

    • 注意: 这里关注docker给我们分配的ip地址

  • 停止容器: docker stop demo1

  • 删除容器(容器必须是停止的状态): docker rm demo1

7. 创建python容器的必要技术

7.1 Docker网络

7.1.1 Docker环境会给容器动态分配IP地址,所以我们要想办法让他绑定一个固定的IP

7.1.2 单独创建Docker内部网段
  • 这里可以通过创建不同的网段来将不同的项目放入其中,如python项目就放到127.18.0.X中,java项目放到127.19.0.X中,这样可以便于查看时那个网段的项目挂掉了,能更清晰的定位

  • 参数

    • –subnet=ip地址/16(65536个地址) 网段名
    • –net 网段名 --ip 指定的ip地址 容器名 bash
  • 创建网段

    • docker network create --subnet=127.18.0.0/16 mynet
  • 删除网段

    • docker network rm mynet
  • 指定IP地址

    • docker run -it --name=demo --net mynet --ip 127.18.0.2 python:3.7 bash

    • 注意:在执行创建时可能会报错

      这时候我们可以换ip地址,如改为:192.168.0.2,也就是说在创建的时候就将网段改为:

      docker network create --subnet=192.168.0.0/16 mynet

  • 查看Docker中存的网段

    • docker network ls

7.2 容器端口映射

  • 为什么要端口映射

  • 参数: -p 宿主机端口:容器端口
  • 执行:
    • docker run -it --name=demo -p 9500:5000 python:3.8 bash

7.3 目录挂载

  • 参数: …-v 宿主机上要映射的目录:容器中的目录 …

  • 执行: docker run -it --name=demo /root/test:/root/project python:3.8 bash

    • 执行完指令之后可以将centos下的/root/test/和docker容器中的/root/test/相关联起来,所以在容器里创建文件,centos下也会出现相应的文件,相应的在centos下创建,容器里也会生成相应的文件

8. 创建python容器

8.1 创建python容器

  • 参数: 这里有个新参数 -d: 表示创建容器但不打开,只在后台运行,而且当在容器里执行exit也不会直接关闭容器,而是一直在后台运行
  • 执行:docker run -it -d --name=flaskdir -p 9500:5000 -v /root/project:/root/project --net python3.7net --ip 192.167.0.2 python:3. 7.8 bash

8.2 为pip加速

9. 创建mysql容器

9.1 下载MySQL镜像

9.2 创建MySQL容器

  • 参数: 注意: 这里不需要加上 --it这个参数

  • 执行:docker run --name mydb -p 4306:3306 --net python3.7net --ip 192.167.0.3 -v /root/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWOR D=abc123456 -d mysql:8.0.18

9.3 创建数据表,写入记录

10. 项目部署

11. Pypy部署环境

11.1 介绍Pypy运行环境

  • Pypy SDK特点

  • windows安装Pypy开发环境

11.2 下载Pypy镜像,创建Pypy容器

  • 执行:

    • docker pull pypy:3.6-7.2.0
    • docker run -it -d --name=demo --net pypynet --ip 192.166.0.2 -p 9600:5000 -v /root/pypy:/root/pypy pypy:3.6-7.2.0 bash
      参考:https://www.bilibili.com/video/BV18J411n79W

python项目中的Docker的简单使用相关推荐

  1. python项目中requirements的巧用(一键导入所有安装包)

    一个Python 项目中可能安装很多安装包, 再次创建虚拟环境是需要重新安装的话很麻烦也费时间, 或者项目部署的时候避免重装, 可以将现有项目的所有安装包记录在requirements.txt 文件, ...

  2. Abp Vnext应用程序项目中添加docker支持的小结

    文章目录 介绍 具体步骤 1.创建项目 2.添加docker支持 3.调整 4.运行实例 总结 介绍 abp vnext 里面的只有 module 项目里面是自动添加 docker 支持的,因为其是面 ...

  3. python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟

    怎么在Python项目中利用Pygame绘制一个时钟 发布时间:2020-11-30 14:24:30 来源:亿速云 阅读:54 作者:Leah 怎么在Python项目中利用Pygame绘制一个时钟? ...

  4. python中pass的使用_pass语句如何在Python项目中使用

    pass语句如何在Python项目中使用 发布时间:2020-11-16 14:55:02 来源:亿速云 阅读:98 本篇文章为大家展示了pass语句如何在Python项目中使用,内容简明扼要并且容易 ...

  5. 项目创建venv、_都2020年了,居然还有人没有在数据科学项目中使用Docker?

    本文将告诉大家什么是 Docker 以及如何在 Python 中使用 Docker. 新手程序员面临的最困难的问题之一是理解"环境"的概念.环境就是你编写代码的系统,听起来很容易, ...

  6. Python项目中用富文本编辑器展示精美网页

    富文本编辑器实现效果图: 左侧编辑区域,右侧渲染到HTML显示效果,除了渲染时候代码样式有所不同,其他标题.文字.图片基本满足所见即所得的效果 下面讲解富文本编辑器在Django项目中如何使用 1.前 ...

  7. python 项目中的requirements.txt文件

    在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.这个文件有点类似与Rails的Gemfile.其作用是用来在另一台PC ...

  8. java和opencv配置_Java——OpenCVWindows配置和项目中jar包的简单配置

    1. 安装OpenCV 1.1 下载相应的OpenCV版本,解压 1.2 将 openCV的dll文件(D:\InstallPackages\OpenCV\opencv\build\java\x64) ...

  9. Python 项目中requirements.txt依赖文件的使用

    在学习他人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.其好处就是在新设备上重新构建项目时,快速的添加运行程序所需要的依赖. ...

最新文章

  1. SaltStack工具中MySQL的模块返回值问题解决
  2. Maven提高篇系列之(五)——处理依赖冲突
  3. 数据结构实验之二叉树七:叶子问题
  4. 蓄电池及直流电源装置的运行维护——Fluke 345 多用途钳表的应用
  5. Caffe学习(十)protobuf及caffe.proto解析
  6. SAP Commerce Cloud 导入消费OCC API需要使用的credentials
  7. linux下安装两个tomcat,linux安装两个tomcat-Go语言中文社区
  8. 控制台下修改系统驱动状态的代码
  9. 公链史记 | 从鸿蒙初辟到万物生长的十年激荡
  10. php中函数的使用方法,php中header()函数的使用方法
  11. 原因及解决办法:Failed to load module “canberra-gtk-module“
  12. web编程之第一章HTML基础
  13. 软路由WIFI的方案,pcie网卡和硬件无线AP那种最稳定靠谱?
  14. 去掉WORD文档中首页的页眉及页眉的横线
  15. win7服务器建网站教程,win7搭建Web服务器教程
  16. R-squared 和 Adjusted R-squared 的区别
  17. ch9200 usb网卡驱动_21包邮的PCMCIA无线网卡开箱+对比测评
  18. 如何在MD编辑器打出上下标
  19. Facebook推出附近好友功能 可用手机查附近好友
  20. 【译文】工作六年后,我对软件开发的认知转变

热门文章

  1. centos7上搭建php服务器环境
  2. sklearn 命令行安装_sklearn 安装说明
  3. 实验二无线网络环境RSSI测量
  4. alv回车_ALV捕捉回车键
  5. 《天下无贼》片尾曲《那一天》
  6. HashMap的containsKey方法底层详解
  7. 第二类贝塞尔函数讨论
  8. 【ARM】使用J-Link下载u-boot到Mini2440开发板
  9. Game - Deppin绿色安装红色警戒(OpenRA-Red Alert)
  10. 什么是斐波那契数列?