当前位置: 首页 > news >正文

Docker1---安装

标题一: Docker 简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

1.docker容器技术是虚拟化的一种
查看进程,查看网络

2.什么是容器:
一种虚拟化的方案。
传统的虚拟化技术,虚拟的是硬件环境
容器虚拟化是操作系统虚拟化
只能运行相同或相似内核的操作系统
依赖于Linux内核特性:Namespace和Cgroups(Control Group)

3.容器技术的优点:
1.磁盘空间占用少:
传统虚拟化,很小的服务需要完整的操作系统和库的支持。底层架构体积过于庞大,也会占用过多的硬件资源
docker,只有要应用和相对应的库。

4.Docker。
可以将应用程序自动部署到容器。
应用程序部署引擎,轻量的开发者环境。
快速的从开发者环境部署到测试环境然后到生产环境

5.Dokcer实现的目标
提供简单轻量的建模方式,几分钟即可让应用程序容器化,几秒钟即可启动一个服务。
职责的逻辑分离:开饭人员只需管理容器的内容和服务,运维人员只需管理如何运营docker
快速高效的开发生命周期,以容器的形式交付,使用同一种开发环境。
面向服务的架构。一个容器之运行一个服务,所有的服务内部互联。高内聚,低耦合。

6.docker
1.使用docker容器开发,测试,部署服务
2.创建隔离的运行环境。
3.搭建测试环境。
4.构建多用户的平台即服务(PaaS)基础设施
5.提供软件即服务(Saas)应用部署
6.高性能,超大规模的宿主机部署。

7.docker的基本组成
docker client客户端
docker daemon守护进程
docker image 镜像
docker container 容器
docker Registry 仓库

8.Docker依赖的Linux内核特性
Namespace命名空间--封装--隔离
操作系统:
系统资源的隔离:进程,网络,文件系统
PID(Process ID) 进程隔离
NET (Network)网络接口
IPC (InterProcess Communication)跨进程通信
MNT (Mount)挂载点
UTS (Unix Timessharing system)隔离内核版本标识

Cgroup
用来分配资源
资源限制:限制进程使用内存的大小。
优先级设定:那些进程可以优先使用cpu,内存等
资源计量:统计进程使用资源情况
资源控制:进程的挂起恢复

9.Docker容器
文件系统隔离:每个容器有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离:容器见的虚拟网络接口和IP地址都是分开的
资源隔离和分组:使用cgroup将CPU和内存之类的资源独立分给每个docker容器

~~~~

标题二: Docker 安装

使用的环境是centos7

安装

step 1: 安装必要的一些系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Step 2: 添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Step 3: 更新并安装 Docker-CE

sudo yum makecache fast
sudo yum -y install docker-ce

Step 4: 开启Docker服务

sudo service docker start
systemctl start docker

注意:
官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。****

vim /etc/yum.repos.d/docker-ce.repo
将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1

安装指定版本的Docker-CE:

Step 1: 查找Docker-CE的版本:

yum list docker-ce.x86_64 --showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: branch, fastestmirror, langpacks
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
Available Packages

Step2 : 安装指定版本的Docker-CE: ```

(VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)

sudo yum -y install docker-ce-[VERSION]


# 3.建立docker用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

建立 docker 组:

$ sudo groupadd docker
将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER

# 4.安装完后检查安装
[root@localhost ~]# docker version
![](https://s1.51cto.com/images/blog/201811/12/c9523bd630dbf92e346c30329c4ab4b2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

测试:
[root@localhost /]# docker run hello-world

补充:
镜像加速
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}


之后重新启动服务。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

转载于:https://blog.51cto.com/14070945/2316073

相关文章:

  • 如何利用极致业务基础平台构建一个通用企业ERP之十二收款单设计
  • 如何给esxi打补丁
  • OpenCart之信息中心(Information)模块教程
  • KbmMW 4.40.00 正式版发布
  • keepalived实现lvs高可用并负载均衡lamp
  • java调试技巧
  • 浅析微信支付:支付验收示例和验收指引
  • 网络中IP地址划分
  • 链表六:二叉搜索树与双向链表
  • 新一代海量数据架构分析:NoHadoop
  • chapter1.3、JS的分支语法
  • 企业邮件系统多域通讯录共享方案
  • 取证分析:在通信过程中不关心目标的子网掩码
  • 系统维护和tcp连接
  • winform 如何控制输入法
  • 分享一款快速APP功能测试工具
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • angular学习第一篇-----环境搭建
  • canvas绘制圆角头像
  • co模块的前端实现
  • Git学习与使用心得(1)—— 初始化
  • JavaScript设计模式之工厂模式
  • Python 反序列化安全问题(二)
  • SpringBoot几种定时任务的实现方式
  • Twitter赢在开放,三年创造奇迹
  • vuex 学习笔记 01
  • 回流、重绘及其优化
  • 前端js -- this指向总结。
  • 手写一个CommonJS打包工具(一)
  • 算法系列——算法入门之递归分而治之思想的实现
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • $NOIp2018$劝退记
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (007)XHTML文档之标题——h1~h6
  • (03)光刻——半导体电路的绘制
  • (2)STM32单片机上位机
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (TOJ2804)Even? Odd?
  • (五)网络优化与超参数选择--九五小庞
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转载)Linux 多线程条件变量同步
  • .gitignore文件—git忽略文件
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 设计一套高性能的弱事件机制
  • .net 中viewstate的原理和使用
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET和.COM和.CN域名区别
  • .Net环境下的缓存技术介绍
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET微信公众号开发-2.0创建自定义菜单
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @Autowired @Resource @Qualifier的区别