python中docker系统管理的示例分析
这篇文章给大家分享的是有关python中docker系统管理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
创新互联建站主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、全网整合营销推广、网站程序开发、HTML5响应式网站建设公司、成都做手机网站、微商城、网站托管及网站维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为成都高空作业车租赁行业客户提供了网站营销服务。
(一)什么是docker hub
Docker Hub是一个仓库
>https://hub.docker.com/
>如果页面打不开,那就需要×××。
仓库是集中存放镜像文件的场所。
仓库为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库就是https://hub.docker.com/
用户也可以在本地网络搭建私有仓库。
用户可以选择性的将镜像上传到私有和公有仓库中。其他用户使用镜像只需要pull命令,上传是通过push命令
注意
>下载不需要账号,上传是需要进行账号注册的
vagrant 安装docker
源码:https://github.com/limingios/dockerpython.git (「docker实战篇」python的docker-docker系统管理-基础概念(27))
vagrant的使用参见
mac 安装vgarant :https://idig8.com/2018/07/29/docker-zhongji-07/
window安装vgarant:https://idig8.com/2018/07/29/docker-zhongji-08/
通过vagrant 安装centos7
Vagrantfile
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.require_version ">= 1.6.0" boxes = [ { :name => "docker-vagrant-centos", :mem => "2048", :cpu => "2" } ] Vagrant.configure(2) do |config| config.vm.box = "centos/7" boxes.each do |opts| config.vm.define opts[:name] do |config| config.vm.hostname = opts[:name] config.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = opts[:mem] v.vmx["numvcpus"] = opts[:cpu] end config.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--memory", opts[:mem]] v.customize ["modifyvm", :id, "--cpus", opts[:cpu]] end config.vm.network :private_network, auto_config: true, ip: "192.168.70.100", bridge:"ens1f0", bootproto: "static", gateway: "192.168.70.1" end end config.vm.provision "shell", privileged: true, path: "./setup.sh" end
setup.sh
#/bin/sh sudo yum install -y yum upgrade yum-utils device-mapper-persistent-data wget sudo yum install -y net-tools sudo yum install -y curl policycoreutils openssh-server openssh-clients sudo systemctl enable sshd sudo systemctl start sshd sudo yum install -y postfix sudo systemctl enable postfix sudo systemctl start postfix sudo firewall-cmd --permanent --add-service=http sudo systemctl reload firewalld sudo curl -sSL https://get.docker.com/ | sh sudo curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.io sudo systemctl restart docker sudo yum -y install epel-release sudo yum -y install python-pip sudo yum clean all sudo pip install docker-compose
vagrant安装命令
vagrant up
mac 安装vgarant :https://idig8.com/2018/07/29/docker-zhongji-07/
window安装vgaranthttps://idig8.com/2018/07/29/docker-zhongji-08/
系统类型 | IP地址 | 节点角色 | CPU | Memory | Hostname |
---|---|---|---|---|---|
Centos7 | 192.168.70.100 | gitlab | 2 | 2G | docker-vagrant-centos |
(1). 虚拟机vagrant讲述安装的步骤
vagrant up
(2).机器window/mac开通远程登录root用户下
su - # 密码 vagrant #设置 PasswordAuthentication yes vi /etc/ssh/sshd_config sudo systemctl restart sshd
docker 登录
>通过网页的方式登录
虚拟机linux登录docker官网,输入的是用户名和密码。不是在官网登录的邮箱
docker login
搜索镜像
>官网方式
linxu命令的方式
下载镜像
>1.先配置加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io sudo systemctl restart docker
2.下载centos镜像
#默认下载最后一个版本 docker pull centos docker images
3.才75MB的centos镜像,这是为啥啊?平时下载centos的ios都几个G,怎么可能如此的小。如果老铁是初学者肯定会问这类的问题。
解释下为什么镜像如此小
>linux操作系统是由内核空间和用户空间组成的,内核空间就是kernel,linux刚启动的时候会加载这个bootfs文件系统,之后这个bootfs会卸载掉,用户文件系统就是rootfs,包含dev,bin等目录,对于刚下载的centos这个镜像来说,底层会使用docker的内核,自己只需要提供用户空间就可以了 ,对于精简的系统用户空间可以很小,只需要包括最基本的命令和程序库就可以了,我们平时安装的centos除了最基本的还会安装很多的软件,服务,图形桌面等等,需要好几个g也不足为奇了。
什么是镜像
Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序,库,资源,配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷,环境变量,用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。docker镜像只需要一个基础的base Image,按照需求不断的叠加就可以了。共享一份基础的。一个基础镜像出现多个容器,如果容器内的etc文件被修改,但是基础镜像的是不会被改变的。修改只会在单个的容器内。 例如要安装一个tomcat镜像,新的镜像是在基础的linux下一层一层叠加上来的。Docker的copy-on-write特性
所有的修改,添加,删除,只会发生在容器层中,镜像层都是只读的。
什么是容器
>容器是一种轻量级,可移植,自包含的软件打包技术,是一种应用程序,可以在几乎任何地方以相同的方式运行。
开发人员在自己笔记本创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机,物理放服务器或公有云主机上运行。
为什么需要容器,以及为什么被称为容器
集装箱,无论你是什么货物,钢琴,香蕉,保时捷,他都会放置在各自的集装箱里面了,它都会密封,只有到达目的地才会被打开,标准的集装箱会被高效的装卸重叠,长途运输。docker就将集装箱的思想运用在了打包软件上面。它为代码提供了容器的标准化的运输系统,docker会将任何应用打包成为一个轻依赖,可移植,自包含的容器,这个容器几乎可以运行在任何的操作系统上,其实集装箱和容器对应的单词都叫container,docker的图标就是一个鲸鱼顶着多个集装箱。
docker容器的优势
容器的优势,对于开发人员来说,创建一次,可以在任何地方运行,对于运维人员来说,配置一次,可以运行所有应用。
docker服务
docker最核心的后台进程,它负责响应来自Docker client的请求,然后将这些请求翻译成系统调用完成容器管理操作。该进程会在后台启动一个API Server,负责接收由Docker client发送的请求;接收到的请求将通过Docker服务内部的一个路由分发调度,再由具体的函数来执行请求。
感谢各位的阅读!关于“python中docker系统管理的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
当前标题:python中docker系统管理的示例分析
分享网址:http://cdiso.cn/article/ghjieg.html