转载请注明作者及出处:

作者:银河架构师

原文链接:https://www.cnblogs.com/luas/p/12061747.html

一、准备工作

查看内核

Docker 要求 CentOS 系统的内核版本高于 3.10,所以要先查看CentOS系统内核版本, 是否满足要求:

name -r

结果如图:

 

由于本文系统为CentOS7.7.1908,内核满足要求。

查看是否有旧版本:

docker -v

注意:如显示未找到命令、则也不能完全说明未安装docker,因为可能没有进行相关配置、没有配置成功、docker服务未启动等,都会导致此命令不可用。

使用如下命令查看是否安装了docker及相关包:

rpm -qa | grep docker

如无任何信息输出,则说明未安装过docker。如出现相关包信息,则逐一删除即可:

yum remove xxxx

也可以使用批量删除命令:

yum remove $(rpm -qa | grep docker)

二、自动安装

下载docker-ce源

直接下载:

#需要根据发行版选择,本文为CentOS
wget -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

通过yum-config-manager添加:

#安装yum-util,yum-util提供yum-config-manager功能,其它两个为devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2​#添加docker-ce源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装最新版本

使用如下命令安装最新稳定版本:

yum install docker-ce

注意:由于repo中默认只开启stable仓库,所以均为稳定版本。

如果想知道安装的最新版本的版本号,则可用如下命令查看:

yum list docker-ce

安装特定版本

查看所有版本:

yum list docker-ce --showduplicates | sort -r

结果如下:

选择版本安装:

yum install docker-ce-19.03.-.el7

注意:前缀带有3:的,需要去掉,添加docker-ce-即可。

三、手工安装

下载阿里源:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

下载rpm包

下载地址,注意,此处同样需要根据发行版来选择,本文为CentOS,如需其它发行版安装包,则访问官方下载地址选择即可。

可先在其它电脑下载完毕,通过ftp、ssh上传到docker主机,也可以使用wget命令在docker主机直接下载。下载地址可访问上述地址选择相关rpm包进行复制,以 docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm为例。

wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm

安装

使用已下载的rpm包进行安装:

yum -y install docker-ce-18.03..ce-.el7.centos.x86_64.rpm

注意:

如选择docker-ce19版本,则需要在安装docker前,先安装其依赖containerd.io、docker-ce-cli,因为手工安装不会自动安装相关依赖。

此两个依赖下载地址、安装步骤可参考docker rpm包安装方法,需要特别注意的是,一定要选择对要安装的docker对应版本,如docker-ce-19.03.5,对应的docker-ce-cli版本也需为docker-ce-cli-19.03.5。如不确定相关版本,可先执行docker-ce安装,此时会安装出错,需要containerd.io、docker-ce-cli依赖包,然后根据出错信息中的依赖版本,选择下载即可。

启动与检查

启动:

systemctl start docker.service

检查安装结果:

docker -v#或者docker --version

显示信息如下:

安装成功!

开机自启动:

systemctl enable docker.service

其它命令:

#重启
systemctl restart docker.service #停止
systemctl stop docker.service

四、配置

环境变量

编辑/etc/profile,添加环境变量DOCKER_HOST=tcp://0.0.0.0:2375

vim /etc/profile

添加如图内容:

编辑好以后,保存退出。

编译/etc/profile:

source /etc/profile

验证:

echo $DOCKER_HOST

结果如图所示:

配置成功!

配置docker daemon

编辑文件/etc/docker/daemon.json:

vim /etc/docker/daemon.json

编辑内容如下:

{  "registry-mirrors": ["https://registry.docker-cn.com"],  "log-driver":"json-file",  "log-opts":{"max-size":"500m","max-file":"3"},  "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]  }

配置监听

编辑文件 /usr/lib/systemd/system/docker.service:

vim /usr/lib/systemd/system/docker.service

编辑内容行 ExecStart=/usr/bin/dockerd.....,追加如下内容:

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

修改docker镜像默认存储路径

编辑内容行 ExecStart=/usr/bin/dockerd.....,追加如下内容:

--graph /usr/docker

其中,/usr/docker 为自定义docker镜像存储路径

重启与验证

重新加载docker daemon:

systemctl daemon-reload

重启docker服务

systemctl restart docker.service

验证:

docker-info

查看输出信息

五、安装Docker-Compose

使用国内镜像get.daocloud.io快速下载

curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

添加执行权限

chmod +x /usr/local/bin/docker-compose

验证

docker-compose --version

结果如下:

安装成功!

微信搜索【银河架构师】,发现更多精彩内容。

技术资料领取方法:关注公众号,回复微服务,领取微服务相关电子书;回复MK精讲,领取MK精讲系列电子书;回复JAVA 进阶,领取JAVA进阶知识相关电子书;回复JAVA面试,领取JAVA面试相关电子书,回复JAVA WEB领取JAVA WEB相关电子书。

 

docker进阶之路-基础篇 | 一:环境搭建的更多相关文章

  1. docker进阶之路-基础篇 | 二:portainer安装与基本使用

    转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061755.html ​简介 Portainer 是轻量级,跨平台,开源的管理D ...

  2. C蛮的全栈之路-node篇(一) 环境布置

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...

  3. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

  4. Appium基础知识与环境搭建

    基础知识:  环境搭建: 1.安装jdk,配置java环境变量 (1)新建变量"JAVA_HOME",变量值"D:\Frameworks\Java\jdk1.8.0_18 ...

  5. Python基础学习之环境搭建

    Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...

  6. 新一代Java程序员必学的Docker容器化技术基础篇

    Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...

  7. Jenkins: 基础篇(环境配置)

    自动化领域比较有影响力的开源框架jenkins,确实比较强大,易用.很多公司将其用来做持续即成CI(continuous integration).为了拓展和强化自己的软件设计生态系统,也将很久前使用 ...

  8. python之路基础篇

    基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Se ...

  9. 1-ESP8266 SDK开发基础入门篇--开发环境搭建

    因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...

随机推荐

  1. ES6入门一:ES6简介及Babel转码器

    ES6简介 Babel转码器 Nodejs中使用ES6 WebPack中使用ES6及Babel转码插件 一.ES6简介与转码  1.1一个常见的问题,ECMAScript和JavaScript到底是什 ...

  2. 发送大数据时,PDU的问题?

    昨天发现通过 Ice发送请求传递一个大块数据时,当请求的体积大于1.2M后,直接抛出异常Connection Lost,对方peer或是断开了.通过防火墙配置排查,以及对同一网络同一机器的php服务p ...

  3. 023.掌握Pod-Pod扩容和缩容

    一 Pod的扩容和缩容 Kubernetes对Pod的扩缩容操作提供了手动和自动两种模式,手动模式通过执行kubectl scale命令或通过RESTful API对一个Deployment/RC进行 ...

  4. location 优先级

    ###我只是个搬运工 规则 等号类型(=)的优先级最高.一旦匹配成功,则不再查找其他匹配项 前缀普通匹配(^~)优先级次之.不支持正则表达式.使用前缀匹配,如果有多个location匹配的话,则使用表 ...

  5. 根据json数据中某一个属性 处理数组重组的方法 (二种)

    需求:根据role 的不同分组 渲染页面 进行后期操作 后台返回数据:   因为后台返回的json数据不是我们想要的 所以就得自己来了~  要啥样整啥样 js: 第一种处理方法 使用方法: 1: th ...

  6. Github远程库与Git本地库连接

    Github远程库与Git本地库连接 以下有任何[]符号只是将内容扩起,输入命令不需要将[]加入 创建SSH Key 用户主目录有.ssh->id_rsa和id_rae.pub->直接跳过 ...

  7. 2019-9-28:渗透测试,基础学习,pgp常量,逻辑运算,DNS投毒,笔记

    sunny.exe clientid 隧道ID route -n 查看网关netstat -rn 查看网关 DNS劫持ettercap用来内网渗透测试使用,可以嗅探内网,DNS劫持等攻击1,在攻击者电 ...

  8. day 33 线程锁

    Python的GIL锁 - Python内置的一个全局解释器锁,锁的作用就是保证同一时刻一个进程中只有一个线程可以被cpu调度. 为什么有这把GIL锁? 答:Python语言的创始人在开发这门语言时, ...

  9. JS三座大山再学习(三、异步和单线程)

    本文已发布在西瓜君的个人博客,原文传送门 前言 写这一篇的时候,西瓜君查阅了很多资料和文章,但是相当多的文章写的都很简单,甚至互相之间有矛盾,这让我很困扰:同时也让我坚定了要写出一篇好的关于JS异步. ...

  10. ibatis入门实例(完整)

    一:首先展示一下我的web文件结构,首先导入Ibatis所需jar和数据库驱动,从第二步开始跟着笔者一步步来 二:数据库建测试表 CREATE TABLE STUDENT ( ID NUMBER(5) ...