一、安装环境初始化
1.安装常用工具
yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc nepdate openldap-devel
2.创建新的阿里云元数据
- 下载阿里云基础仓库,执行命令:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
下载阿里云额外仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
清空本地 yum 缓存
yum clean all
生成新的 yum 缓存
yum makecache
二、 Docker 安装
1.查看所有镜像源
# 切换目录
cd /etc/yum.repos.d/
# 查看当前目录的所有镜像源
ll
2.配置阿里云仓库的 docker 镜像源
- 安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
设置阿里云 docker 镜像源
# 中央仓库
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
# 阿里仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存
# 更新 yum 缓存
yum clean all && yum makecache
查看下载的 docker 镜像源
3.安装 Docker Ce 社区版本,安装之前先关闭防火墙,执行命令
# 停止防火墙
systemctl stop firewalld
# 查看防火墙状态
systemctl status firewalld
# 禁用防火墙
systemctl disable firewalld
# 重新加载防火墙配置
firewall-cmd --reload
5.执行安装 docker 命令
yum install -y docker-ce.x86_64
6.查看已安装的 docker 版本
docker -v
如果要卸载 docker,则执行命令(慎用)
yum remove containerd.io.x86_64 -y
yum remove docker-ce.x86_64 -y
yum remove docker-ce-cli.x86_64 -y
yum remove docker-ce-rootless-extras.x86_64 -y
三、配置 Docker 镜像加速器
1.使用 docker 首要操作就是获取镜像文件,默认下载是从 Docker Hub 下载,网速较慢,国内很多云服务商都使用了加速器服务,阿里云加速器,Daocloud加速器,灵雀云加速器,参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors
2.添加配置文件,执行命令 vi /etc/docker/daemon.json,添加如下内容
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
3.重新加载 docker 配置文件,执行命令
# 重新加载 docker 配置文件
systemctl daemon-reload
四、启动 docker 服务
1.设置 docker 开机启动
# 设置 docker 开机启动
systemctl enable docker
2.启动 docker
# 启动 docker
systemctl start docker
3.验证 docker 是否启动成功
# 查看 docker 进程运行状态
systemctl status docker
4.其他 docker 常用命令
# 停止 docker
systemctl stop docker
# 重启 docker
systemctl restart docker
# 查看 docker 进程
ps -ef | grep docker
# 查看 docker 版本
docker version
# 查看 docker 系统信息
docker info
# 查看 docker 容器
docker ps
# 查看 docker 镜像文件
docker images
五、firewalld防火墙开启后无法启动docker的问题
1.centos7中 firewalld与docker冲突问题原因分析
- firewall 的底层是使用 iptables 进行数据过滤,建立在 iptables 之上,而 docker 使用 iptables 来进行网络和管理,这可能会与 Docker 产生冲突。当 firewalld 启动或者重启的时候,将会从 iptables 中移除 Docker 的规则,从而影响了 Docker 的正常工作
- 也就是说,firewalld 和 docker 都在操作 iptables 的规则,但是 docker 和 firewalld 发生了冲突,导致 docker 和 firewall 的设置不一致,导致出现了问题
2.解决方法,让 Docker 绕过 firewalld,让 docker 不修改 iptables
- 修改 docker 配置,执行命令 vi /etc/docker/daemon.json,添加规则
{ "experimental" : true, "iptables": false }
3.重新加载 docker 配置文件,执行命令
# 重新加载 docker 配置文件
systemctl daemon-reload
4.启用 firewall 防火墙
# 启用 firewall 防火墙
systemctl enable firewalld
# 启动 firewall 防火墙
systemctl start firewalld
# 查看 firewall 运行状态
systemctl status firewalld
5.重启 docker 服务
# 重启 docker
systemctl restart docker
# 查看 docker 进程运行状态
systemctl status docker
6.重启 Centos7 虚拟机,查看 docker 是否能正常自启动
# 重启系统命令
reboot
# 查看 docker 进程运行状态
systemctl status docker
- 重启系统
- 查看 docker 运行状态,如下图表示 docker 在系统启动时正常自启动