window10下安装Docker

 

linux下

1:docker介绍

2013年发布至今,Docker一直广受瞩目,被认为可能会改变软件行业。

但是,许多人并不清楚Docker到底是什么,要解决什么问题,好处又在哪里?

img

一,环境配置的难题

软件开发最大的麻烦事之一,就是环境配置。用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?

用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。解释来说,安装一个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部署区别:

imgimg

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:查看一些码头工人版本可用

img

2:安装指定版本

img

<VERSION_STRING>指的是执行查看可用版本命令时,第二列里的值

img

3.2:离线安装方式

1:通过以下连接下载当前操作系统可用的docker版本

https://download.docker.com/linux/ubuntu/dists/

img

img

img

img

img

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守护进程

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文件

7:制作自己的Docker实质上

posted @ 2020-09-18 08:26  宋小凯  阅读(546)  评论(0编辑  收藏  举报