前提说明
- CentOS 7 安装 Docker:
- Docker 并非是一个通用的容器工具,它依赖于已经存在并运行的 Linux 内核环境。
- Docker 实际上是在已经运行的 Linux 下制造一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。
- 因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想要部署 Docker 就必须要安装一个虚拟的 Linux 环境。
Docker 下载地址
环境准备
https://docs.docker.com/get-started/overview/
- Docker 运行在 CentOS7 上,要求系统为 64 位,系统内核版本是 3.10 以上。
- Docker 运行在 CentOS6.5 或更高版本的 CentOS 上,要求系统为 64 位,系统内核版本是 2.6.32-431 或者更高版本。
Linux系统分为两种: 1.RedHat系列:Redhat、Centos、Fedora等 2.Debian系列:Debian、Ubuntu等 RedHat系列的包管理工具是yum Debian系列的包管理工具是apt-get 查看系统版本: cat /proc/version 查看 Linux 内核 uname -r
安装
步骤
1、卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、需要的安装包
yum install -y yum-utils
3、设置镜像仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo // 默认是国外的
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo // 阿里云镜像地址
或者配置K8S的yum源
wget ftp://ftp.rhce.cc/k8s/docker-ce.repo -P /etc/yum.repos.d/
4、更新yum软件包索引
yum makecache fast
5、安装docker相关的内容 docker-ce 社区版
yum list docker-ce --showduplicates | sort -r 查看存储库中 Docker 的版本
yum install docker-ce docker-ce-cli containerd.io 安装最新版本的 Docker
6、配置阿里云镜像加速
登录阿里云,找到容器镜像服务,找到自己的镜像加速器
配置步骤
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
7、重新加载配置文件
systemctl daemon-reload
8、启动
systemctl start docker
9、查看是否启动成功
docker version
如果出现 WARNING: IPv4 forwarding is disabled. Networking will not work. 这样的警告
- 解决方案:
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 # 添加这段代码
systemctl restart network && systemctl restart docker
卸载docker
1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
2. 删除目录
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
问题汇总
docker 启动报错
Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.
修改/usr/lib/systemd/system/docker.service
错误原因:
docker的socket配置出现了冲突,docker在运行时的启动入口文件为:/lib/systemd/system/docker.service,我们在配置镜像加速之后又添加了一个守护进程文件:/etc/docker/daemon.json,两个文件对host进行了配置,发生冲突。
journalctl -xe 查看报错详情
failed to start daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: devicemapper, o
解决办法:
修改 /etc/docker/daemon.json
增加:
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
docker -v 查看版本
systemctl enable docker 设置服务器开机启动
systemctl stop docker 停止docker
systemctl 方式
sudo systemctl daemon-reload 守护进程重启
sudo systemctl restart docker 重启docker服务
sudo systemctl stop docker 关闭docker