前提说明

  • CentOS 7 安装 Docker:
    • Docker 并非是一个通用的容器工具,它依赖于已经存在并运行的 Linux 内核环境。
    • Docker 实际上是在已经运行的 Linux 下制造一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。
    • 因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想要部署 Docker 就必须要安装一个虚拟的 Linux 环境。

image.png

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、卸载旧版本

  1. yum remove docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-common \
  5. docker-latest \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-engine

2、需要的安装包

  1. yum install -y yum-utils

3、设置镜像仓库

  1. yum-config-manager \
  2. --add-repo \
  3. https://download.docker.com/linux/centos/docker-ce.repo // 默认是国外的
  4. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo // 阿里云镜像地址

或者配置K8S的yum源

  1. wget ftp://ftp.rhce.cc/k8s/docker-ce.repo -P /etc/yum.repos.d/

4、更新yum软件包索引

  1. yum makecache fast

5、安装docker相关的内容 docker-ce 社区版

  1. yum list docker-ce --showduplicates | sort -r 查看存储库中 Docker 的版本
  2. yum install docker-ce docker-ce-cli containerd.io 安装最新版本的 Docker

6、配置阿里云镜像加速

登录阿里云,找到容器镜像服务,找到自己的镜像加速器
Docker安装 - 图2
配置步骤

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
  5. }
  6. EOF
  7. sudo systemctl daemon-reload
  8. sudo systemctl restart docker

7、重新加载配置文件

  1. systemctl daemon-reload

8、启动

  1. systemctl start docker

9、查看是否启动成功

  1. docker version

Docker安装 - 图3

如果出现 WARNING: IPv4 forwarding is disabled. Networking will not work. 这样的警告
image.png

  • 解决方案:
  1. vim /etc/sysctl.conf
  1. net.ipv4.ip_forward=1 # 添加这段代码
  1. systemctl restart network && systemctl restart docker

卸载docker

  1. 1. 卸载依赖
  2. yum remove docker-ce docker-ce-cli containerd.io
  3. 2. 删除目录
  4. rm -rf /var/lib/docker
  5. 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
image.png
错误原因:
docker的socket配置出现了冲突,docker在运行时的启动入口文件为:/lib/systemd/system/docker.service,我们在配置镜像加速之后又添加了一个守护进程文件:/etc/docker/daemon.json,两个文件对host进行了配置,发生冲突。
journalctl -xe 查看报错详情
image.png

failed to start daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: devicemapper, o
解决办法:

  1. 修改 /etc/docker/daemon.json
  2. 增加:
  3. "storage-driver": "overlay2",
  4. "storage-opts": [
  5. "overlay2.override_kernel_check=true"
  6. ]

image.png

  1. docker -v 查看版本
  2. systemctl enable docker 设置服务器开机启动
  3. systemctl stop docker 停止docker

Docker安装 - 图8

  1. systemctl 方式
  2. sudo systemctl daemon-reload 守护进程重启
  3. sudo systemctl restart docker 重启docker服务
  4. sudo systemctl stop docker 关闭docker