1、Docker的存在解决的问题
1.1 统一标准
应用构建:我们写的应用可能使用了不同的编程语言,例如:Java、C++、JavaScript等,这些应用最终打成软件包,有的是压缩包、有的是文件夹、有的是源程序让自己编译,这就很麻烦;那么能否统一打成一个包?这就需要docker build,把我们的软件打成一个标准格式的包,这个包就叫做镜像!
应用分享:所有软件的镜像都放到一个指定地方 docker hub(就相当于安卓手机里的应用市场)。
应用运行:我们都打包成了统一标准的镜像(相当于Windows里的可执行程序.exe);直接docker run就可以启动应用。
Docker的存在开启了一个时代,一个容器化的时代!
区别于容器化,以前我们有一个虚拟化技术:假如有一个8核64G的应用,我们跑很多的应用,所有的应用都放到一个机器里面;如果一个软件造成内存泄漏,就可能把整个64G内存全部占完,造成其它应用就挤下去运行不了了!为了安全,所以我们要把这些应用进行隔离:
(1)第一种办法:虚拟化技术;装几个虚拟机,假如每个虚拟机占8个G,每个虚拟机里布置各自的应用,就算有一个应用造成了内存泄漏,也只会漏掉8个G,不会影响别人!但是虚拟化技术也有很多缺点:基础镜像都是GB级别、创建使用复杂、启动速度慢、移植与分享不方便;
(2)第二种办法:容器化技术;一个服务器装了操作系统,对于虚拟机化技术实际上每个虚拟机又是一个完整的操作系统;对于容器化技术,既然有操作系统了,docker就是搞一些差异化的东西保存起来,所以每个应用的环境只是区别于当前服务器的一个差异化环境;优点:基础镜像MB级别、创建简单、隔离性强、启动速度秒级、移植与分享方便;
1.2 资源隔离
(1)cpu、内存资源隔离与限制;
(2)访问设备隔离与限制;
(3)网络隔离与限制;
(4)用户、用户组隔离限制;容器里跑的应用的root用户,跟Linux主机里的root用户,可以不是同一个root用户
........................
2、Docker的建构
1、Docker_Host:
想用Docker,每台主机必须安装Docker;安装Docker的主机,即为Docker_Host
2、Docker Daemon
安装好Docker就会在主机上启动,后台启动一个Docker的进程;运行在Docker主机上的Docker后台进程
3、Client
操作Docker主机的客户端(命令行、UI等)
4、Registry
镜像仓库:Docker Hub
5、Images
镜像,带环境打包好的程序,可以直接启动运行
6、Containers
容器,由镜像启动起来正在运行中的程序
总结:想要用docker,先装好Docker;然后去 软件市场 (docker hub)寻找镜像,下载(docker pull)镜像并运行(docker run);
3、安装Docker
Docker官方部署Docker平台的底层Linux操作系统对应的Linux内核版本至少3.8+,在实际的企业生产环境中,推荐的Linux内核至少3.10+,对应的Linux操作系统发型版本:Centos7.x或者Ubuntu16.x;
cat /etc/centos-release # 查看当前Centos的版本 uname -a #查看当前内核的版本
Docker安装的官方文档:https://docs.docker.com/engine/install/centos/
1、卸载以前安装的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 如果以前什么都没安装,直接yum remove docker*就可以
2、配置yun源
yum install -y yum-utils # 下载yum工具类所需要的依赖
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 添加docker安装源地址
3、安装docker
yum install -y docker-ce docker-ce-cli containerd.io # 安装最新版本得docker
# docker-ce---docker社区版
# docker-ce-cli---操作docker服务器的命令行程序
# containerd.io---docker容器化的运行环境
# 如果想要安装其他版本
yum list | grep docker # 查看一下docker资源的安装列表
4、启动docker并设置为开机自启
systemctl start docker --now
systemctl enable docker
5、查看一下当前的docker运行状态
systemctl status docker
6、随便使用一个命令验证
docker info # 打印docker的详细信息
7、配置镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl restart docker
然后输入:docker ps能打印出来内容就说明没问题!
总结
到此这篇关于centos搭建部署docker环境的文章就介绍到这了,更多相关centos搭建docker环境内容请搜索得得之家以前的文章希望大家以后多多支持得得之家!