Docker安装

十年热恋 提交于 2020-03-12 08:29:28

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

一个完整的Docker有以下几个部分组成:

1.DockerClient客户端
2.Docker Daemon守护进程
3.Docker Image镜像
4.DockerContainer容器

二、Docker架构:
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 面向对象
容器 对象
镜像

一句话:镜像是容器运行的基石,容器是镜像运行之后的实例。

Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。
Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。

在这里插入图片描述
三、局限性:
Docker并不是全能的,设计之初也不是KVM之类虚拟化手段的替代品,简单总结几点:

1.Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用。
2.LXC(Linux Contains)是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的。
3.隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库。
4.网络管理相对简单,主要是基于namespace(命名空间)隔离。
5.cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)。
6.Docker对disk的管理比较有限。
7.container随着用户进程的停止而销毁,container中的log等用户数据不便收集。

四、Centos7安装docker:
使用docker的基本要求:内核版本必须是3.10以上的。

安装的第一种方法:从Docker的官网下载。(不推荐这样安装。)
进入官网
在这里插入图片描述
一种企业版,一种社区版。我们安装社区版。
企业版docker官网提供技术支持,而社区版就需要我们自己去摸索了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
进入后,找到Install from a package:
在这里插入图片描述
然后将网站复制,回centos7终端,搭建yum源:
搭建yum源:/etc/yum.repos.d/下创建yum源。

[aaa]
name=aaa
baseurl=https://download.docker.com/linux/centos/7/x86_64/stable/
gpgcheck=0		#检查是否是本地官方的库
enabled=1		#启用yum源

保存退出,查看yum源的信息:

[root@localhost ~]# yum repolist

默认下载的是最新版本docker-ce。

[root@localhost ~]# yum -y install docker-ce

因为网速原因,所以我一般可以采取另外一种方法,从我们国内下载,国内很多网站都提供了docker-ce的镜像站,比如说阿里云、网易云、清华大学镜像站等。
这里我们从阿里云下载的方式下载。戳这里
在这里插入图片描述
根据提示安装:
安装必要的一些系统工具:

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
执行完成后,在/etc/yum.repo.d/下生成一个docker-ce yum源
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  docker-ce.repo
查看yum源的信息:
[root@localhost ~]# yum repolist

做缓存更新:
[root@localhost ~]# yum makecache

查看docker-ce的可用版本。
[root@localhost ~]# yum list docker-ce.x86_64 --showduplicates | sort -r

这里我们下载指定版本18.9.0,注意并没有采取阿里云官方推荐的方法,我们分别下载了docker-ce,docker-ce-cli和containerd.io这三个组件。

[root@localhost ~]# yum -y install docker-ce-18.09.0-3.el7 docker-ce-cli-18.09.0-3.el7 containerd.io-1.2.0-e17

安装完成后启动加入开机自启:
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
查看版本信息:
[root@localhost ~]# docker -v		#查看docker客户端的版本信息
或
[root@localhost ~]# docker version		#查看c/s的docker版本详细信息

提示:最小化安装系统的,可以再去下载下面的工具,用来帮助我们实现tab键自动补全的功能。

[root@localhost ~]# yum -y install bash-completion		#下载命令tab工具。

使用docker镜像加速器,这里使用的是daocloud的加速器,当然还有其他的加速器,例如阿里云、清华镜像站等。戳这里加速器
根据提示执行一条命令:

[root@localhost ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
##运行完成后在/etc/docker/下产生daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json 
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}
#这样就更改了镜像仓库了。

[root@localhost ~]# systemctl daemon-reload		#重载daemon后台守护进程。
[root@localhost ~]# systemctl restart docker	#重启docker服务。

测试:下载centos7版本的系统镜像。(速度很快的)

[root@localhost ~]# docker pull centos:7		#下载centos7版本的镜像。
[root@localhost ~]# docker images		#查看本地的镜像名称及标签。
REPOSITORY(仓库) TAG(版本) IMAGE ID(镜像的ID编号) CREATED(更新版本的时间)  SIZE(镜像大小)
centos              	7       5e35e350aded        	3 weeks ago       		     203MB

再下载nginx服务镜像:

[root@localhost ~]# docker pull nginx
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              231d40e811cd        12 days ago         126MB
centos              7                   5e35e350aded        3 weeks ago         203MB

运行nginx服务:

[root@localhost ~]# docker run -itd -p 80 nginx			#这里-p是映射本地的端口
[root@localhost ~]# docker ps	#查看运行的服务及端口号。

访问网页测试:
在这里插入图片描述
更改网页:需要进入容器里进行操作:

首先查看容器ID号:
[root@localhost ~]# docker ps

进入容器:
[root@localhost ~]# docker exec -it 4a0bb72249a0 /bin/bash

默认安装完nginx,网页根目录在/usr/share/nginx/html/下:
修改:
root@4a0bb72249a0:/# echo test > /usr/share/nginx/html/index.html 
root@4a0bb72249a0:/# cat /usr/share/nginx/html/index.html 
test

再次网页访问进行查看:
在这里插入图片描述
更改成功。

至此,docker部署完成。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!