python中docker系统管理的示例分析

55次阅读
没有评论

共计 3975 个字符,预计需要花费 10 分钟才能阅读完成。

这篇文章给大家分享的是有关 python 中 docker 系统管理的示例分析的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

(一)什么是 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 地址节点角色 CPUMemoryHostnameCentos7192.168.70.100gitlab22Gdocker-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

python 中 docker 系统管理的示例分析

python 中 docker 系统管理的示例分析

3. 才 75MB 的 centos 镜像,这是为啥啊?平时下载 centos 的 ios 都几个 G,怎么可能如此的小。如果老铁是初学者肯定会问这类的问题。

解释下为什么镜像如此小
linux 操作系统是由内核空间和用户空间组成的,内核空间就是 kernel,linux 刚启动的时候会加载这个 bootfs 文件系统,之后这个 bootfs 会卸载掉,用户文件系统就是 rootfs,包含 dev,bin 等目录,对于刚下载的 centos 这个镜像来说,底层会使用 docker 的内核,自己只需要提供用户空间就可以了,对于精简的系统用户空间可以很小,只需要包括最基本的命令和程序库就可以了,我们平时安装的 centos 除了最基本的还会安装很多的软件,服务,图形桌面等等,需要好几个 g 也不足为奇了。

python 中 docker 系统管理的示例分析

什么是镜像
Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序,库,资源,配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷,环境变量,用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。docker 镜像只需要一个基础的 base Image,按照需求不断的叠加就可以了。共享一份基础的。一个基础镜像出现多个容器,如果容器内的 etc 文件被修改,但是基础镜像的是不会被改变的。修改只会在单个的容器内。例如要安装一个 tomcat 镜像,新的镜像是在基础的 linux 下一层一层叠加上来的。

Docker 的 copy-on-write 特性

所有的修改,添加,删除,只会发生在容器层中,镜像层都是只读的。

python 中 docker 系统管理的示例分析

什么是容器
容器是一种轻量级,可移植,自包含的软件打包技术,是一种应用程序,可以在几乎任何地方以相同的方式运行。

开发人员在自己笔记本创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机,物理放服务器或公有云主机上运行。

为什么需要容器,以及为什么被称为容器

python 中 docker 系统管理的示例分析

集装箱,无论你是什么货物,钢琴,香蕉,保时捷,他都会放置在各自的集装箱里面了,它都会密封,只有到达目的地才会被打开,标准的集装箱会被高效的装卸重叠,长途运输。docker 就将集装箱的思想运用在了打包软件上面。它为代码提供了容器的标准化的运输系统,docker 会将任何应用打包成为一个轻依赖,可移植,自包含的容器,这个容器几乎可以运行在任何的操作系统上,其实集装箱和容器对应的单词都叫 container,docker 的图标就是一个鲸鱼顶着多个集装箱。

docker 容器的优势

容器的优势,对于开发人员来说,创建一次,可以在任何地方运行,对于运维人员来说,配置一次,可以运行所有应用。

docker 服务

docker 最核心的后台进程,它负责响应来自 Docker client 的请求,然后将这些请求翻译成系统调用完成容器管理操作。该进程会在后台启动一个 API Server,负责接收由 Docker client 发送的请求;接收到的请求将通过 Docker 服务内部的一个路由分发调度,再由具体的函数来执行请求。

感谢各位的阅读!关于“python 中 docker 系统管理的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-17发表,共计3975字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)