ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

安装Docker

2020-09-18 08:31:47  阅读:322  来源: 互联网

标签:容器 虚拟机 apt Docker 安装 docker


 

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到底是什么,要解决什么问题,好处又在哪里?

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实质上

标签:容器,虚拟机,apt,Docker,安装,docker
来源: https://www.cnblogs.com/songkaixuan/p/13689097.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有