1:docker介绍一,环境配置的难题二,虚拟机四,Docker是什么?五,Docker的用途1:卸载旧版本(如果安装过):2:删除/ var / lib / docker /目录(如果存在)3.1:通过OS的软件仓库安装4:安装后相关配置4:验证是否安装成功Docker守护进程:Docker守护进程Docker客户端:Docker客户端:Docker注册表:Docker XMLDocker对象:
linux下
1:docker介绍
2013年发布至今,Docker一直广受瞩目,被认为可能会改变软件行业。
但是,许多人并不清楚Docker到底是什么,要解决什么问题,好处又在哪里?
一,环境配置的难题
软件开发最大的麻烦事之一,就是环境配置。用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?
用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。解释来说,安装一个Python应用程序,计算机必须有Python引擎,还必须有各种依赖,可能还要配置环境变量。
开发者常常会说:“它在我的机器可以跑了”(在我的机器上工作),言下之意就是,其他机器很可能跑不了。
很多人想到,能不能从根本上解决问题,软件可以带环境安装?而不是安装的时候,把原始环境一模一样地复制过来。
二,虚拟机
虚拟机(virtual machine)就是带环境安装的一种解决方案。它可以在一种操作系统里面运行另一种操作系统,例如在Windows系统内部运行Linux系统。应用程序无需感知,因为虚拟机看上去跟真实系统一模一样,而对于过多系统而言,虚拟机就是一个普通文件,不需要了就删掉了,对其他部分毫无影响。
(1)资源占用多
它运行的时候,其他程序就不能使用这些资源了。哪怕虚拟机里面的应用程序,真正使用的内存只有1MB,虚拟机仍然需要几百MB的内存才能运行。
(2)冗余步骤多
虚拟机是完整的操作系统,一些系统等级的操作步骤,经常无法跳过,某些用户登录。
(3)启动慢
启动操作系统需要多久,启动虚拟机就需要多久。可能要等几分钟,应用程序才能真正运行。
三,Linux容器
由于虚拟机存在这些缺陷,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,简称为LXC)。
Linux容器不是模拟一个完整的操作系统,还是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与脆弱系统的隔离。
由于容器是进展等级的,大约虚拟机有很多优势。
(1)启动快
因此,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。
(2)资源占用少
容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,因此要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源。
(3)体积小
容器只要包含用到到的组件即可,而虚拟机是整个操作系统的打包,那么容器文件比虚拟机文件要小很多。
总之,容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本增加小幅度。
四,Docker是什么?
Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。它是当前最流行的Linux容器解决方案。
Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
总体而言,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理,复制,共享,修改,就像管理普通的代码一样。
五,Docker的用途
Docker的主要用途,目前有三大类。
(1)提供一次性的环境。例如,本地测试他人的软件,持续集成的时候提供单元测试和内置的环境。
(2)提供弹性的云服务。因为Docker容器可以随开随关,很适合动态扩容和缩容。
(3)组建微服务架构。通过多个容器,一台机器可以运行多个服务,因此在本机就可以模拟出微服务架构。
Docker部署与VM部署区别:
2:安装docker官方安装文档地址:https : //docs.docker.com/engine/install/ubuntu/
Linux ubuntu18.04:
1:卸载旧版本(如果安装过):
$ sudo apt-get删除docker docker-engine docker.io容器化runc
2:删除/ var / lib / docker /目录(如果存在)
3.1:通过OS的软件仓库安装
1:sudo apt-get update#更新下软件源信息
2:sudo apt-get install #安装必要的软件,让apt可以通过https安装docker
apt-transport-https
ca证书
卷曲
gnupg-agent
常用软件属性
3: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add-#添加Docker官方的密钥
4: sudo add-apt-repository #添加apt仓库地址,安装当前操作系统版本可用的docker相关软件
“ deb [arch = amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
稳定”
5:
sudo apt-get update#更新源
sudo apt-get install docker-ce docker-ce-cli containerd.io#安装docker软件
额外信息:
安装指定版本docker相关软件:
1:查看一些码头工人版本可用
2:安装指定版本
<VERSION_STRING>指的是执行查看可用版本命令时,第二列里的值
3.2:离线安装方式
1:通过以下连接下载当前操作系统可用的docker版本
https://download.docker.com/linux/ubuntu/dists/
2:安装.deb包
路径表示下载地址,xxxx代表我们下载的串联
须藤dpkg -i /path/xxxxx.deb
4:安装后相关配置
sudo groupadd docker#只要不报错就可以,可能会提示用户组已经存在,不用理会
sudo usermod -aG泊坞窗$ USER
4:验证是否安装成功
docker run hello-world#输出hello world表示成功
3:Docker架构:
名字解释:
Docker守护进程:Docker守护进程
Docker守护进程(dockerd)侦听Docker API请求并管理Docker对象,如图像,容器,网络和卷。守护进程还可以与其他守护进程通信来管理Docker服务。
Docker客户端:Docker客户端:
Docker客户端(Docker)是Docker用户与Docker daemon交互的主要方式。
当您使用docker run之类的命令时,将这些命令发送给dockerd,dockerd执行这些命令。
docker命令使用dockerAPI。Docker客户端可以与多个守护进程通信
Docker注册表:Docker XML
存储Docker映像的地方,Docker中心是一个公共的注册地,任何人都可以通过docker pull
Docker对象:
图片:总计:
一些列文件的封装,包括我们自己的写的程序和依赖程序,也是一个模板文件,可以基于这个并运行多个程序实例(容器)
完全可以继承,至少基于一个ubuntu扩展,我们可以在里面安装Nginx,python等软件形成新的替代
容器:容器:
基于总体运行时生成的实例,也就是程序运行时
3:常用命令介绍:
泊坞窗运行
docker启动/停止/重启
码头工人
码头工人rmi
码头工人
码头工人ps
码头工人图像
码头工人提交
码头工人搜索
4:基于docker安装mysql
码头工人运行-d --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD = 123456 mysql
5:安装redis
docker运行-itd --name redis-test -p 6379:6379 redis
6:Dockerfile文件