一、Docker简单介绍
a.Docker是什么
1.为什么会有Docker这个技术的出现
2.docker理念
Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作
3.一句话
解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
b.能干嘛
1.之前的虚拟机技术
虚拟机的缺点:
1 资源占用多 2 冗余步骤多 3 启动慢
2.容器虚拟化技术
3.开发/运维(DevOps)
4.企业级
c.去哪下
1.官网
docker官网:http://www.docker.com
docker中文网站:https://www.docker-cn.com/
2.仓库
Docker Hub官网: https://hub.docker.com/
二、Docker安装
a.前提说明
查看已安装的CentOS版本信息(CentOS6.8有,CentOS7无该命令)
b.Docker的基本组成(Docker架构图)
1.镜像(image)
Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。
2.容器(container)
3.仓库(repository)
4.小总结
c.安装步骤(CentOS7安装Docker)
1.官网中文安装参考手册
https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/#prerequisites
2.确定你是CentOS7及以上版本
cat /etc/redhat-release
3.yum安装gcc相关
CentOS7能上外网
yum -y install gcc
yum -y install gcc-c++
4.卸载旧版本
yum -y remove docker docker-common docker-selinux docker-engine
2018.3官网最新版本:yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
5.安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
6.设置stable镜像仓库(不要配置docker国外官网的,有防火墙很慢)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
7.更新yum软件包索引
yum makecache fast
8.安装DOCKER CE
yum -y install docker-ce
9.启动docker
systemctl start docker
10.测试
docker version
docker run hello-world
11.配置镜像加速
mkdir -p /etc/docker
vim /etc/docker/daemon.json
#网易云
{"registry-mirrors": ["http://hub-mirror.c.163.com"] }
#阿里云
{
"registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker
12.卸载
systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker
查看安装过的包:yum list installed | grep docker
执行上述删除动作之后还有执行这些命令来删除安装的Docker相关的软件包: yum -y remove containerd.io.x86_64,yum -y remove docker-ce-cli.x86_64
d.永远的HelloWorld
1.阿里云镜像加速(6.8)
——是什么:https://dev.aliyun.com/search.html
——注册一个属于自己的阿里云账户(可复用淘宝账号)
——获得加速器地址连接(登陆阿里云开发者平台,获取加速器地址)
——配置本机Docker运行镜像加速器:
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,
我使用的是阿里云的本人自己账号的镜像地址(需要自己注册有一个属于你自己的): https://xxxx.mirror.aliyuncs.com
* vim /etc/sysconfig/docker
将获得的自己账户下的阿里云加速地址配置进
other_args="--registry-mirror=https://你自己的账号加速信息.mirror.aliyuncs.com"
——重新启动Docker后台服务:service docker restart
——Linux 系统下配置完加速器需要检查是否生效
如果从结果中看到了配置的--registry-mirror参数说明配置成功,如下所示:
2.网易云加速(6.8)
基本同上述阿里云: 配置Json串的地方不同了:
{ "registry-mirrors": ["http://hub-mirror.c.163.com"]}
3.启动Docker后台容器(测试运行 hello-world)
e.底层原理
1.Docker是怎么工作的
Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境,就是我们前面说到的集装箱。
2.为什么Docker比较比VM快
(1)docker有着比虚拟机更少的抽象层。由亍docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
(2)docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返个过程,因此新建一个docker容器只需要几秒钟。
三、Docker常用命令
a.帮助命令
docker version