哈喽各位小伙伴,我是七哥,今天来跟大家一起聊聊Docker容器的知识。
Docker简介
Docker是一个用于开发、交付和运行应用程序的开放平台。Docker能够让我们将应用程序与基础架构分开,从而可以快速交付软件。借助Docker我们可以像管理应用程序那样管理基础架构。同时,通过利用Docker来快速交付、测试和部署代码,我们可以大大减少编写代码和在生产环境中运行代码之间的延迟。重点来了,Docker是七哥喜爱的Go语言开发的
Docker组成
Docker采用的是C/S架构模式,主要包含以下内容:
- docker server (服务端)
- docker client (客户端)
- container (容器)
- image (镜像)
- repository (仓库)
- volumes (数据持久化相关)
- network (网络相关)
下面这个图表述的更加清晰:
接下来我们详细介绍:
- docker server:现在分为moby、docker-ce、docker-ee,其中:
mody:继承了原来的docker项目,现在由社区维护的开源项目
docker-ce:由docker公司维护的docker开源项目
docker-ee:由docker公司维护的docker的商业化产品,闭源 - docker client:docker-cli通过REST API的形式同docker server通信
- container:containerd.io是独立运行的一个或一组应用,是镜像运行时的实体,可以理解为container就是还没有装操作系统的一台计算机,image就是Windows、Linux、Mac这类的操作系统
- images:用于创建Docker容器的模板,比如Centos系统,我们自己开发的程序最终也是镜像
- volumes:通过绕过container的文件系统,直接将数据写到host机器上,它是被docker管理的,并且docker下所有的volume都在host机器上的指定目录下var/lib/docker/volumes
- network:用于管理容器的网络。文档参考
Centos安装Docker
前提条件
要安装Docker Engine,我们需要一个Centos 7的维护版本。不支持或未测试存档版本。
该centos-extras
库必须启用。默认情况下,这个库是启用的,如果它已经被禁用,则需要重新启用它。overlay2
建议使用的存储驱动程序。
卸载旧版本
如果已经安装了较旧的Docker版本,我们首先要卸载掉它以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
开始安装
我们可以根据需要以不同的方式安装:
- 大多数通过设置Docker的存储库并从中进行安装,以简化安装和升级任务。(推荐)
- 通过手动安装RPM包
- 通过使用自动化脚本来安装
本文介绍通过使用存储库安装
设置存储库(Repository)
安装yum-utils
软件包(提供yum-config-manager
实用程序)并设置稳定的存储库。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
正式安装Docker
- 安装最新版本的Docker Engine和容器
$ sudo yum install docker-ce docker-ce-cli containerd.io
- 启动Docker
$ sudo systemctl start docker
- 通过运行
hello-world
镜像来验证是否正确安装了Docker Engine
$ sudo docker run hello-world
至此,Docker已经安装完成了!
设置Docker开机自启
使用systemd
开机自启
$ sudo systemctl enable docker
关闭开机自启
$ sudo systemctl disable docker