1、Docker 是一个开源的应用容器引擎,是虚拟化的一种轻量级替代技术。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,开销很低。docker解决了服务器昂贵的问题,生产环境和测试环境不一致的问题。
个人理解:Docker相当于一个宾馆,这个宾馆中又包含着许多房间,每个房间是独立存在的,互相不打扰。在这里以MySQL为例,我们会将开发所用的MySQL应用,单独的将整个MySQL且其所包含的各种依赖和函数库放到MySQL专属房间中。我们将每个开发中所用的应用都放到一个独立的房间中,这样就避免了应用之间的互相打扰。
1、Docker解决依赖兼容问题。
(1) 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包。
(2) 将每个应用放到一个隔离容器去运行,避免互相干扰。
2、Docker解决操作系统环境差异。
(1)Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包。
(2)Docker运行到不同操作系统时,直接基于打包的函数库,借助于操作系统的Linux内核来运行。
(3)Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行。
总结:大家具体可以参考一下这张图,然后加深理解。
1、镜像
Docker将应用程序及其所需要的依赖、函数库、环境、配置等文件打包在一起,称为镜像。(类似于我们打包文件)
2、容器:
镜像中的应用程序运行后形成的进程就是容器,但是Docker会给容器对象进行隔离,对外是不可见的,并且要注意一个镜像是可以启动多次的,形成多个容器进程。
(例如你下载了一个QQ,如果我们将QQ在磁盘上的运行文件及其运行的操作系统依赖打包,形成QQ镜像。然后你可以启动多次,双开、甚至三开QQ,跟多个妹子聊天。)
3、Docker架构模式:
Docker是一个CS架构的程序,主要由服务端和客户端组成:
(1)服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等。
(2)客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。
安装环境:centos7
(1)注意用户权限需要升到root权限,输入:su root,然后输入密码即可。
(2)并且要确保虚拟机已经联网!
安装步骤:
1、卸载,在控制台输入如下代码,然后回车。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
碰到的问题:
(1)运行yum命令出现“Existing lock /var/run/yum.pid: another copy is running as pid…”解决方法?
问题分析:yum只能支持一个进程运行,如果有一个进程已经在运行,其他的必须等待该进程退出释放lock。
解决办法:暂停之前的yum进程即可,控制台输入如下代码,即可解决。
rm -f /var/run/yum.pid
2、开始安装:
(1)安装yum工具,然后回车。
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
(2)然后更新本地镜像源,然后回车。
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
(3)安装Docker社区版本:
yum install -y docker-ce
(4)配置镜像加速:
在这里我们选用阿里云的镜像地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors。
在这里复制的时候可以将红框中的代码全部直接复制到虚拟机上,然后回车!
碰到的问题:在这里一定要根据自己虚拟机的版本选择合适的加速器!!!!