1.安装 docker ce
1.1 说明
Docker 的早期版本称为 docker 或 docker-engine, 从2017年3月1号开始,Docker分成 CE(社区版) 和 EE(企业版) 2个版本,安装包发生变化,安装方式和之前也稍有不同,不能通过yum直接安装。
1.2 卸载旧版本
此种方式将保留 /var/lib/docker/
的内容,包括镜像、容器、存储卷和网络,如果不想保留历史信息,首先删除该文件夹:
yum remove docker docker-common docker-selinux docker-engine
1.3 安装docker依赖软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
1.4 设置镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.5 更新 yum 软件包索引
yum makecache fast
1.6 安装最新版本docker ce
yum install docker-ce
1.7 安装指定版本docker ce
# 查看版本列表
yum list docker-ce.x86_64 --showduplicates | sort -r
# 安装指定版本
yum install 18.03.0.ce-1.el7
1.8 启动docker
systemctl start docker
1.9 设置docker服务开机启动(可选)
扫描二维码关注公众号,回复:
89893 查看本文章
systemctl enable docker.service
1.10 配置国内镜像加速器
我配置的是淘宝镜像源,这个是我之前写的,贴个链接,不重新写了:解决docker从官方仓库拉取镜像时速度过慢问题
方式一:添加及配置 /etc/docker/daemon.json
方式二:编辑文件:/usr/lib/systemd/system/docker.service ,在 ExecStart=/usr/bin/dockerd 后面添加:--registry-mirror=<加速器地址>
1.11 测试
docker run hello-world
2.脚本
#!/bin/bash
echo "---> 卸载原始镜像"
yum remove docker docker-common docker-selinux docker-engine -y
echo "---> 安装所需的软件包:yum-utils device-mapper-persistent-data lvm2"
yum install -y yum-utils device-mapper-persistent-data lvm2
echo "---> 命令设置 stable 镜像仓库"
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
echo "---> 更新 yum 软件包索引"
yum makecache fast
echo "---> 开始安装docker"
if [ ! -n "$1" ]
then
echo "未指定版本,安装最新版本docker-ce"
yum install docker-ce -y
else
echo "安装指定版本:docker-ce-$1"
yum install docker-ce-$1 -y
fi
echo "---> 成功安装docker"
echo "---> 备份并修改docker配置文件"
cp -f /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service.bak
sed -i '/ExecStart=\/usr\/bin\/dockerd/ s/$/ -H tcp:\/\/0.0.0.0:2376 -H unix:\/\/\/var\/run\/docker.sock/' /usr/lib/systemd/system/docker.service
# 这里换成自己的加
echo "---> 配置镜像加速器"
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
echo "重启docker及其守护进程"
systemctl daemon-reload
systemctl restart docker