Docker-ce(社区版)自动安装教程和用阿里云为镜像加速
程序员文章站
2022-06-16 13:13:46
Docker-ce社区版一、Docker介绍一、Docker介绍Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。......
Docker-ce社区版
一、Docker介绍
1、了解Docker
- Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
- Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
- Docker 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
- Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
- docker的两种文件格式为 json,yaml
2、Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
3、Docker 的优点以及可用之处
- Docker 是一个用于开发,交付和运行应用程序的开放平台。
- Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。
- Docker 可以与管理应用程序相同的方式来管理基础架构。
- Docker 的方法来快速交付,测试和部署代码,可以大大减少编写代码和在生产环境中运行代码之间的延迟。
- Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。容器非常适合持续集成和持续交付(CI / CD)工作流程。
- Docker 是基于容器的平台,允许高度可移植的工作负载。
- Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。
- Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。
- Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此可以利用更多的计算能力来实现业务目标。
- Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。
4、Docker的三个重要概念
- 1)镜像(image)
Docker 镜像就是一个只读模板。
镜像可以用来创建 Docker 容器。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
- 2)容器(Container)
Docker 利用容器来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。
- 3)仓库(Repository)
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
5、用图了解docker的运行模式
二、阿里云为docker镜像加速
1、首先有一个阿里云官方账号。
2、登陆账号,进入控制台选择。
3、针对Linux 7.0 以上版本配置镜像加速器
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxxxx.mirror.aliyuncs.com"] //注:这里为你自己的镜像加速地址
}
EOF
systemctl daemon-reload
systemctl restart docker
三、自动安装docker的shell脚本
1、安装docker的shell脚本(加速地址一定要换成自己的)
#!/bin/bash
ping www.baidu.com -c 3 -i 0.5
if [ echo $? = 0 ]
then
echo "网络正常"
else
echo "无网络无法执行,退出脚本"
exit
fi
for i in `ls /etc/yum.repos.d/`
do
cat /etc/yum.repos.d/$i | egrep -v "^#" |grep -o "http" &>/dev/null && echo "1" >1.txt
cat /etc/yum.repos.d/$i | egrep -v "^#" |grep -o "ftp" &>/dev/null && echo "2" >1.txt
cat /etc/yum.repos.d/$i | egrep -v "^#" |grep -o "file" &>/dev/null && echo "3" >1.txt
done
for b in `cat 1.txt`
do
if [ $b = 1 ]
then
echo "这是线网源"
elif [ $b = 2 ]
then
echo "这是ftp源,可能无法安装"
else
echo "这是本地源,无法安装,以退出"
exit
fi
done
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
ls /etc/yum.repos.d/ |grep doc* &>/dev/null
if [ $?=0 ]
then
echo "镜像源添加成功"
else
echo "镜像添加失败,请重试"
fi
yum install -y docker-ce
systemctl stop firewalld.service
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl start docker.service
systemctl enable docker.service
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"] //这个地方换成各位大佬自己的镜像地址
}
EOF
if [ $?=0 ]
then
echo "加速成功"
else
echo "加速失败,请重试"
fi
systemctl daemon-reload
systemctl restart docker
echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf
sysctl -p
if [ $?=0 ]
then
echo "路由转发成功"
else
echo "路由转发失败,请重试"
fi
systemctl network restart
systemctl restart docker
docker version
echo "恭喜您可以使用docker了"
2、脚本解释
- 判断网络是否为线网源,如果不是无法进行安装。
- 判断yum源是否可以经行安装docker-ce。
- 安装依赖环境。
- yum-utils提供了yum-config-manager 用来添加下载docker-ce的源
- device mapper存储驱动程序需要device-mapper-persistent-data和 lvm2
- Device Mapper是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
- 设置阿里云镜像源
- 安装Docker-CE
- 关闭防火墙和selinux
- 使用阿里云镜像加速
- 开启路由转发
- 重新启动network和docker
本文地址:https://blog.csdn.net/wulimingde/article/details/109596487