环境准备

https://docs.docker.com/get-started/overview/
centos 7 环境
如果CentOS系统内核低于3.10,可以升级软件包及内核,通过 yum update 升级

Linux系统分为两种: 1.RedHat系列:Redhat、Centos、Fedora等 2.Debian系列:Debian、Ubuntu等 RedHat系列的包管理工具是yum Debian系列的包管理工具是apt-get 查看系统版本: cat /proc/version Linux version 3.10.0-1062.1.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Mon Sep 30 14:19:46 UTC 2019 我的系统是Red hat 所以使用的包管理工具是yum

  1. uname -r // 查看系统内核
  2. 3.10.0-1062.1.2.el7.x86_64
  3. cat /etc/os-release // 查看系统配置
  4. NAME="CentOS Linux"
  5. VERSION="7 (Core)"
  6. ID="centos"
  7. ID_LIKE="rhel fedora"
  8. VERSION_ID="7"
  9. PRETTY_NAME="CentOS Linux 7 (Core)"
  10. ANSI_COLOR="0;31"
  11. CPE_NAME="cpe:/o:centos:centos:7"
  12. HOME_URL="https://www.centos.org/"
  13. BUG_REPORT_URL="https://bugs.centos.org/"
  14. CENTOS_MANTISBT_PROJECT="CentOS-7"
  15. CENTOS_MANTISBT_PROJECT_VERSION="7"
  16. REDHAT_SUPPORT_PRODUCT="centos"
  17. REDHAT_SUPPORT_PRODUCT_VERSION="7"

image.png
https://docs.docker.com/engine/install/centos/

安装并运行一个hello-world

步骤

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 // 阿里云镜像地址

4、更新yum软件包索引

  1. yum makecache fast

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

  1. yum install docker-ce docker-ce-cli containerd.io

6、配置阿里云镜像加速

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

  1. # 1
  2. sudo mkdir -p /etc/docker
  3. # 2 编写配置文件
  4. sudo tee /etc/docker/daemon.json <<-'EOF'
  5. {
  6. "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
  7. }
  8. EOF
  9. # 3 重新加载配置
  10. sudo systemctl daemon-reload
  11. # 4 启动
  12. sudo systemctl restart docker

7、重新加载配置文件

  1. systemctl daemon-reload

8、启动

  1. systemctl start docker

9、查看是否启动成功

  1. docker version

docker安装 - 图3
10、hello-world

  1. docker run hello-world

docker安装 - 图4

11、查看下载的hello-world镜像

  1. docker images

image.png

卸载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
解决办法:
修改 /etc/docker/daemon.json
增加:
“storage-driver”: “overlay2”,
“storage-opts”: [
“overlay2.override_kernel_check=true”
]
image.png

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

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