一、安装前准备

1、硬件要求

CentOS 7(64-bit),内核版本不能低于3.10;

CentOS 6.5(64-bit或更新的版本),内核版本为 2.6.32-431 或者更高版本,一般不建议在CentOS 6.x下安装Docker,因为往往CentOS 6.x往往需要先升级内核版本以达到安装条件,但是升级内核可能会导致开不了机之类的问题。

2、卸载旧版本

较旧版本的Docker被称为dockerdocker-engine。如果已安装这些,请卸载它们以及相关的依赖项。

  1. $ sudo 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

二、安装Docker

1、使用yum安装

①.安装所需依赖包

  1. sudo yum install -y yum-utils device-mapper-persistent-data lvm2

鉴于国内网络问题,强烈建议使用国内源!!!

国内源:

  1. sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

官方源:

  1. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

如果需要测试版本的 Docker CE 请使用以下命令:

  1. sudo yum-config-manager --enable docker-ce-test

如果需要每日构建版本的 Docker CE 请使用以下命令:

  1. sudo yum-config-manager --enable docker-ce-nightly

②.更新yum缓存并安装Docker-ce

  1. sudo yum makecache fast
  2. sudo yum -y install docker-ce

③.启动Docker-ce

  1. sudo systemctl enable docker
  2. sudo systemctl start docker

④.建立docker用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

建立docker组:

  1. sudo groupadd docker

将当前用户添加到docker组中:

  1. sudo usermod -aG docker $USER

退出当前终端并重新登录,进行如下命令测试,若能正常输出以上信息,则说明安装成功。

  1. [root@localhost ~]# docker run hello-world
  2.  
  3. Hello from Docker!
  4. This message shows that your installation appears to be working correctly.
  5.  
  6. To generate this message, Docker took the following steps:
  7. . The Docker client contacted the Docker daemon.
  8. . The Docker daemon pulled the "hello-world" image from the Docker Hub.
  9. (amd64)
  10. . The Docker daemon created a new container from that image which runs the
  11. executable that produces the output you are currently reading.
  12. . The Docker daemon streamed that output to the Docker client, which sent it
  13. to your terminal.
  14.  
  15. To try something more ambitious, you can run an Ubuntu container with:
  16. $ docker run -it ubuntu bash
  17.  
  18. Share images, automate workflows, and more with a free Docker ID:
  19. https://hub.docker.com/
  20.  
  21. For more examples and ideas, visit:
  22. https://docs.docker.com/get-started/

⑤.镜像加速

如果在使用过程中发现国内网络拉取 Docker 镜像十分缓慢,比如出现拉取镜像Timeout的问题,可以配置 Docker 国内镜像加速

例如,对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

  1. {
  2. "registry-mirrors": [
  3. "https://dockerhub.azk8s.cn",
  4. "https://reg-mirror.qiniu.com"
  5. ]
  6. }
  7.  
  8. #注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

重启docker服务:

  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker

查看加速器是否生效:

执行 docker info,如果从结果中看到了如下内容,说明配置成功。

  1. Registry Mirrors:
  2. https://dockerhub.azk8s.cn/
  3. https://reg-mirror.qiniu.com/

2、使用脚本自动安装

在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装:

  1. curl -fsSL get.docker.com -o get-docker.sh
  2. sudo sh get-docker.sh --mirror Aliyun

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 edge 版本安装在系统中。

3、添加内核参数

如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:

  1. WARNING: bridge-nf-call-iptables is disabled
  2. WARNING: bridge-nf-call-ip6tables is disabled

请添加内核配置参数以启用这些功能。

  1. sudo tee -a /etc/sysctl.conf <<-EOF
  2. net.bridge.bridge-nf-call-ip6tables =
  3. net.bridge.bridge-nf-call-iptables =
  4. EOF

然后重新加载 sysctl.conf 即可

  1. sudo sysctl -p

4、参考文档:

2019-07-07 17:28:49

CentOS下安装Docker CE教程的更多相关文章

  1. 在Ubuntu14.04下安装Docker CE(1) - repository篇

    从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.i ...

  2. docker学习之路-centos下安装docker

    前言 我要在云服务器上做一个asp.net core的webapi应用,使用docker来部署应用,中间用到的任何组件包括nginx和sqlserver 2017都是用docker来装载运行,所以,这 ...

  3. Centos下安装Docker,并配置国内docker源

    Centos下安装Docker 替换为国内的yum源(可选): mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.re ...

  4. Linux 64位 CentOS下安装 Docker 容器,启动、停止

    一.Docker简介 Docker 提供了一个可以运行你的应用程序的封套(envelope),或者说容器,是轻量级的“容器引擎+映像仓库”,在LXC(linux轻量级容器)的基础上构建,可以运行任何应 ...

  5. CentOS 7 安装Docker CE

    本节内容: 背景 Moby项目 安装Docker CE 卸载Docker CE 一.背景 在搭建Registry的过程中,发现使用Docker 1.12版本,在push镜像到Registry时会报错误 ...

  6. CentOS下安装Docker

    简介:本篇文章介绍如何在CentOS系统下面安装docker系统. 官方文档:https://docs.docker.com/install/linux/docker-ce/centos/ Docke ...

  7. 在RedHat/CentOS下安装Docker(不升级内核)

    由于内核版本问题,最初仅Ubuntu可以较好的支持Docker.不过,由于RedHat系列OS(REHL.CentOS)是目前主流的Linux服务器操作系统,所以令RedHat系列OS支持Docker ...

  8. centos7 下安装Docker CE

    前提条件 操作系统要求 要保证centos-extrasrepository开启(enabled).默认处于开启状态. 推荐使用overlay2存储驱动 卸载老版本 $ sudo yum remove ...

  9. centos下安装docker最新版教程

    1.通过yum安装需要root或者能sudo的权限 yum包更新到最新$ sudo yum update 添加Docker yum源$ sudo tee /etc/yum.repos.d/docker ...

随机推荐

  1. 2、django后端:课程表、课程详细表

    1.课程表录入数据 有些人卖接口,接口就是 数据 1.课程表 2张表+3张表 分布式数据库分表 数据库优化 垂直分表 1000w条数据,999w条数据不常看,经常查的1w条数据放在另一个表 水平分表 ...

  2. WebUI自动化之Java语言提高

    单独写一个函数和把函数写在类中的区别: 单独写一个函数,函数只能完成一个功能,团队开发.让第三方使用时比较麻烦: 项目管理和构建自动化工具Maven:

  3. SecureFX中文目录乱码问题解决方案

    1.点击菜单栏中Options 2.找到General下的Configuration Paths并点击 3.在我的电脑打开 右面视图Configuration data is stored in th ...

  4. bbs--文章后台

    bbs--文章后台 需求分析 在个人文章后台中 1 有添加文章的接口 展示文章标题输入框 文本编辑框 标签 分类 选择框 提交 2 编辑文章的接口 页面与添加文章相同,就是把该文章的内容展示到文本编辑 ...

  5. Kernel Knights (Gym - 101480K)

    题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; int a[200005]; //存放原始 ...

  6. CaoHaha's staff (HDU 6154)(2017中国大学生程序设计竞赛 - 网络选拔赛)

    Problem Description "You shall not pass!" After shouted out that,the Force Staff appered i ...

  7. Python数据分析:Numpy学习笔记

    Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...

  8. IDEA checkout Git 分支 弹出 Git Checkout Problem

    1. 本地分支切换的时候(例如A切到B),会弹出来Restore workspace on branch switching 对话框,如果选择是的话,在切换分支的时候,你在当前分支(A)所做的一些还未 ...

  9. CSS 实现对号效果

    实现对号效果,一种思路是利用现成的符号,直接在网上搜索到 √,插入页面.另一种思路是本文要介绍的用 CSS 实现,思路是: 给块级元素设置宽度和高度 设置元素相邻的两个 border 旋转元素 HTM ...

  10. asp.net webAPI

    Get: 1.Get参数传递的本质是url字符串拼接:2.url字符串长度受限制:3.Get参数传递在Http请求头部传递,而不支持Request-Body传递:4.Get类型的方法支持参数为基本类型 ...