一、Docker的概念
Docker 是实现系统平滑移植、容器虚拟化的技术,基于 Go语言,可以实现软件带环境安装,做到“一次镜像,处处运行”。Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。
在现实场景中,开发需要清楚的告诉运维部署团队开发所用的全部配置文件 + 所有软件环境。不过,即便如此,仍然常常发生部署失败的状况。Docker 可以使软件在安装的时候,把原始环境一模一样地复制过来,开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。
Docker 官网为 http://www.docker.com , Dokcer Hub 官网为 http://hub.docker.com/ 。
二、Docker的三要素
Docker有三个基本元素:镜像(image)、容器(container)、仓库(repository)。
1.镜像(image)
Docker 镜像(Image)就是一个只读的模板,用来创建 Docker 容器,一个镜像可以创建很多容器。相当于容器的“源代码”,docker 镜像文件类似于Java的类,而 docker容器 类似于java中 new 出来的实例对象。
2.容器(container)
Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证平台的安全。
3.仓库(repository)
类似于Maven仓库,存放各种jar包、github仓库,存放各种git项目。而 Docker 公司提供的官方 registry 被称为Docker Hub,存放各种镜像模板。
Docker的工作原理也和 Maven 很类似,本地没有的会去远程的 Registry 下载。
三、Docker的安装
Docker 必须部署在 Linux 内核的系统上。官方安装教程 https://docs.docker.com/engine/install/centos/
1.前置准备
首先安装 CentOS7,并通过 yum 安装 gcc 相关。若有旧版本的 docker,执行如下命令来卸载旧版本:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.下载安装包
接下来准备安装所需要的软件包,执行如下命令自动下载:
sudo yum install -y yum-utils
3.设置stable镜像仓库
建议使用如下命令设置成阿里云镜像,设置成官方镜像的话,由于是外网,容易下载不了。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新yum软件包索引
执行如下命令来更新yum软件包索引。这条命令可以将软件包信息提前在本地索引缓存,用来提高搜索安装软件的速度,建议执行这个命令可以提升yum安装的速度。
yum makecache fast
5.安装docker CE
执行如下命令安装docker-ce。docker-ce 指的是 docker 的社区版。
yum -y install docker-ce docker-ce-cli containerd.io
6.启动docker
执行如下命令启动docker。
systemctl start docker
7.测试
执行命令查看版本号并运行 hello-world。
docker version
docker run hello-world
这里可以看到,一开始我们本地环境并没有 hello-world 的镜像,随机如同 maven 一样,docker 自动进行了下载,并成功运行 Hello from Docker !
8.关闭docker
执行如下命令关闭docker。
systemctl stop docker
9.卸载命令
执行如下4条命令可以卸载docker。
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf/var/lib/docker
rm -f/var/lib/containerd