一、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部署完成。
来源:CSDN
作者:博华Linux
链接:https://blog.csdn.net/Bohua101/article/details/104803747