原文地址:http://blog.jboost.cn/docker-3.html

Docker分为Docker CE社区免费版与Docker EE企业收费版。Docker EE主要是在安全性及镜像、容器高级管理方面提供了一些额外的支持。对于中小型企业、团队或个人来说,用Docker CE即可。

1. 安装Docker CE

Docker CE有三个更新渠道:

  • Stable:提供最新的GA(General Availability)稳定版,每六个月一版,如 18.09 表示18年9月版,下一版就是19.03——19年3月版
  • Test:提供GA之前的Pre-release版
  • Nightly:提供最新的build版本,每天一版

我们一般使用stable版。Docker CE支持在多种操作系统下安装,本文只介绍比较常见的Ubuntu 18.04 LTS、CentOS7、及Windows 10上的安装与配置。

1.1 Ubuntu 18.04 LTS 上安装

Docker CE支持的64位Ubuntu系统版本为

  • Cosmic 18.10
  • Bionic 18.04 (LTS)
  • Xenial 16.04 (LTS)

Docker CE在Ubuntu上支持 overlay2, aufs, 以及 btrfs 几种存储驱动程序,对于Linux内核版本为4或以上系统的安装,Docker CE默认使用 overlay2,如果需要使用 aufs,则需要手动配置(参考: Use the AUFS storage driver

1. 卸载旧版本

如果系统安装有旧版本,旧版本命名为 docker, docker.io,或docker.engine,可使用如下命令进行卸载

$ sudo apt-get remove docker docker-engine docker.io containerd runc

目录/var/lib/docker下的内容,包括镜像、容器、数据卷、网络等,会被保留。

2. 使用APT安装

apt源使用HTTPS来确保软件下载过程中不被篡改,所以首先添加使用HTTPS传输需要的软件包以及CA证书

$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

为了确认下载软件包的合法性,添加Docker官方的GPG key:

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/
gpg | sudo apt-key add -

由于国内网络原因,我们一般要使用国内源,否则安装将会灰常灰常慢。向source.list中添加Docker软件源(以下命令添加的是stable版本的APT镜像源,如果需要test或nightly版,将stable改为对应test或nightly即可)

$ sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"

然后,便可更新apt软件包缓存,开始安装了

$ sudo apt-get update
$ sudo apt-get install docker-ce

以上命令默认会安装软件源里的最新版本,如果需要安装指定版本,则可通过查看可用版本,然后指定版本安装,查看版本

$ apt-cache madison docker-ce

安装指定版本

$ sudo apt-get install docker-ce=<VERSION_STRING>

3. 使用脚本自动安装 

Docker提供了一个方便的安装脚本来在开发测试环境安装Docker CE的edge或测试版,Ubuntu上可使用这套脚本来安装Docker CE的edge版

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun

4. 启动Docker CE 

$ sudo systemctl enable docker #开启开机自动启动
$ sudo systemctl start docker #启动docker

5. 用户组配置

docker命令默认是使用Unix socket与Docker引擎进行通信(回顾下除了Unix socket还有REST API及网络端口),只有root用户或docker用户组里的用户才有权限访问Docker引擎的Unix socket,因此,需要将使用docker的用户加入docker用户组(处于安全考虑,一般尽量不要直接使用root用户来操作)

$ sudo groupadd docker #添加docker用户组
$ sudo usermod -aG docker $USER #将当前用户加到docker用户组

退出账号重新登录即可。

6. 测试安装是否成功

$ docker run hello-world

如果显示如下图,则说明安装已成功

7. 卸载

$ sudo apt-get purge docker-ce

以上命令可以卸载docker-ce,但是之前的镜像、容器、数据卷等不会自动删除,可通过如下命令彻底删除

$ sudo rm -rf /var/lib/docker

1.2 CentOS 7 上安装

Docker CE支持64位的CentOS7,并且要求内核版本不低于3.10。CentOS 7满足最低内核的要求,但由于版本较低,一些功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。
可以通过uname -r命令来查看系统内核版本,如

[root@iZwz9dbodbaqxj1gxhpnjxZ ~]# uname -r
3.10.-957.1..el7.x86_64

1. 卸载旧版本 

如果安装了旧版本,需要先卸载。旧版本的Docker称为docker或者docker-engine,卸载命令

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

2. 使用yum安装 

安装依赖包

$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

由于国内网络原因,我们一般要使用国内源,否则安装可能会灰常灰常慢。添加yum软件源

$ sudo yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce
.repo

如果要安装nightly或test版,执行如下对应的命令

$ sudo yum-config-manager --enable docker-ce-nightly # 启用nightly, 将--enbale改为disable又可以禁用
$ sudo yum-config-manager --enable docker-ce-test # 启用test

安装最新版本

$ sudo yum makecache fast # 更新软件源缓存
$ sudo yum install docker-ce # 安装最新版本

安装指定版本

$ sudo yum list docker-ce --showduplicates | sort -r # 列出可用版本
$ sudo yum install docker-ce-<VERSION_STRING> # 安装指定版本

3. 使用脚本自动安装 

执行如下命令,则会自动安装Docker CE的edge版,注意只在开发或测试环境这么用(建议最好还是用stable版)

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

4. 启动Docker CE 

$ sudo systemctl enable docker #开启开机自动启动
$ sudo systemctl start docker #启动docker

5. 用户组配置

docker命令默认是使用Unix socket与Docker引擎进行通信(回顾下除了Unix socket还有REST API及网络端口),只有root用户或docker用户组里的用户才有权限访问Docker引擎的Unix socket,因此,需要将使用docker的用户加入docker用户组(处于安全考虑,一般尽量不要直接使用root用户来操作)

$ sudo groupadd docker #添加docker用户组
$ sudo usermod -aG docker $USER #将当前用户加到docker用户组

退出账号重新登录即可。

6. 测试安装是否成功

$ docker run hello-world

如果显示如下图,则说明安装已成功

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

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

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

$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables =
net.bridge.bridge-nf-call-iptables =
EOF

然后重新加载 sysctl.conf 即可

$ sudo sysctl -p

7. 卸载 

$ sudo yum remove docker-ce # 卸载docker-ce
$ sudo rm -rf /var/lib/docker # 该目录下的镜像、容器、数据卷、网络等不会自动删除

1.3 Windows 10 上安装

windows 10上的安装非常简单,直接下载stable版本安装。

安装完后,在 Windows 搜索栏输入 Docker 点击 Docker for Windows 开始运行

2. 配置国内镜像

Docker默认是从Docker Hub(官方的镜像仓库)拉取镜像的,国内访问一般会比较慢,因此可以配置一些镜像加速器,很多云服务商提供了自己的加速器服务,如Azure中国,阿里云(需要登录获取),七牛云等。

Ubuntu、CentOS上,配置国内镜像只需要在/etc/docker/daemon.json中写入如下内容(如果文件不存在则创建一个)

{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com"
]
}

然后重新启动服务

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

对于Windows 10,在系统右下角托盘Docker图标上右键菜单选择 Settings ,打开配置窗口后在左侧导航菜单选择 Daemon 。在 Registry mirrors 一栏中填写加速器地址 https://dockerhub.azk8s.cn ,之后点击Apply 保存, Docker 就会自动重启并应用配置的镜像地址了。

可以通过docker info命令来检查加速器是否生效,如果执行命令能看到类似如下信息,则说明加速器配置生效了。

Registry Mirrors:
https://dockerhub.azk8s.cn/

3. 总结 

Docker分Docker CE与Docker EE两个版本,对大多数人来说,一般使用Docker CE就行了。我们在安装Docker CE时,最好安装stable版,比较稳定可靠。同时,Linux安装时,记得配置Docker软件源,不然有可能太慢。安装完后,需要配置镜像加速器,加快镜像的下载速度。工具有了,接下来就是探索实践了,加油吧少年!

我的个人博客地址:http://blog.jboost.cn
我的微信公众号:jboost-ksxy (一个不只有技术干货的公众号,欢迎关注,及时获取更新内容)
—————————————————————————————————————————————

Docker笔记(三):Docker安装与配置的更多相关文章

  1. AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排

    一.前言 上一篇部署了一个最基础的helloworld应用,创建了两个容器和一个network,还算应付得过来. 如果该应用继续引入mysql.redis.job等若干服务,到时候发布一次得工作量之大 ...

  2. 【Linux】【Services】【SaaS】Docker+kubernetes(8. 安装和配置Kubernetes)

    1. 概念 1.1. 比较主流的任务编排系统有mesos+marathon,swarm,openshift(红帽内部叫atom服务器)和最著名的kubernetes,居然说yarn也行,不过没见过谁用 ...

  3. 二、【Docker笔记】Docker的核心概念及安装

    Docker主要有三大核心的概念,分别为镜像(Image).容器(Container)及仓库(Repository). 一.核心概念 1.Docker镜像 ​ Docker镜像其实与虚拟机镜像很类似, ...

  4. Docker的三种网络代理配置

    开源Linux 长按二维码加关注~ 上一篇:IPv6技术白皮书(附PDF下载) 有时因为网络原因,比如公司NAT,或其它啥的,需要使用代理.Docker的代理配置,略显复杂,因为有三种场景.但基本原理 ...

  5. Docker学习:virtualbox安装和配置

    下载.安装 从官网:https://www.virtualbox.org/下载,根据说明直接一步步安装即可 安装ubuntu 说明:这里本机内存是16G,若内存<4G安装完成虚拟机, 安装完成之 ...

  6. docker学习(三) - docker理解及命令

    Docker 包括三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 镜像 Docker 镜像就是一个只读的模板. 例如:一个镜像可以包含一个完整的 ubunt ...

  7. Sharepoint 2013 安装部署系列篇 第三篇 -- 安装和配置网络负载均衡在前端web服务器

    第一部分 系统集群安装 第二部分 SQL集群安装 第四部分 安装和配置sharepoint 场(三层拓扑部署) 接下来一步一步开始配置NLB吧, 以下开始讲解如何配置NLB集群作为sharepoint ...

  8. [笔记] Redis的安装与配置超级详细

    目录 Windows下安装与配置 下载 安装 验证安装 配置服务 测试 Linux下安装与配置 准备工作 安装 验证与测试 Macox下安装与配置 准备工作 安装 验证与测试 Redis 在 Wind ...

  9. 三、安装并配置Kubernetes Node节点

    1. 安装并配置Kubernetes Node节点 1.1 安装Kubernetes Node节点所需服务 yum -y install kubernetes   通过yum安装kubernetes服 ...

  10. Linux学习笔记之ubuntu安装与配置

    1.打开虚拟机,点击新建虚拟机 2.安装向导 选择自定义安装 点击包含一个空白的硬盘 选择linux操作系统,版本是ubuntu 设置虚拟机的名称,可以自己写,还有保存的位置也可自选 根据自己电脑性能 ...

随机推荐

  1. 元素命名空间中的“MvcBuildViews”无效

    原文:元素命名空间中的"MvcBuildViews"无效 症状描述: VS2010打开项目时提示:"元素 命名空间"http://schemas.microso ...

  2. 微信小程序把玩(八)view组件

    原文:微信小程序把玩(八)view组件 刚看到这个效果的时候还真是和ReactNative的效果一致,属性也基本的一样. view这个组件就是一个视图组件使用起来非常简单. 主要属性: flex-di ...

  3. MySQL半同步复制搭建

    默认情况下,MySQL 5.5/5.6/5.7和MariaDB 10.0/10.1的复制是异步的,异步复制可以提供最佳性能,主库把binlog日志发送给从库,这一动作就结束了,并不会验证从库是否接收完 ...

  4. C# 中使用OPenCV(Emgu)心得

    原文:C# 中使用OPenCV(Emgu)心得 首先介绍一下自己的情况,2010年的3月份开始接触学习C#编程,之前C#和OpenCV都是零基础,由于全都是自学进度比较慢,中间也走了不少弯路.进过三个 ...

  5. [转载] ASP.NET MVC (一)——深入理解ASP.NET MVC

    个人认为写得比较透彻得Asp.net mvc 文章,所以转载过来,原文链接在最后: ASP.NET vs MVC vs WebForms 许多ASP.NET开发人员开始接触MVC认为MVC与ASP.N ...

  6. Qt中加载Libevent静态库(通过reimp和rs两条语句将lib转为a)

    文章来源:http://blog.sina.com.cn/s/blog_731bf4c90102wnpr.html 本文仅是个人经验总结,若有错误欢迎指教! 最近要做一个跨平台的项目,同时也涉及到网络 ...

  7. Qt 5.6.2 静态编译(VS2013 x86 target xp openssl icu webkit)

    在去年4月份的时候,我写过一篇动态编译Qt5.6.0的文章,当时是为了解决webkit不能在winxp下面跑的问题,动态编译有一个缺点,就是发布的时候,要携带一大堆dll,使安装包的体积增大.而静态编 ...

  8. Ubuntu14.04 静态编译安装Qt4.8.6

    ./configure -static -nomake demos -nomake examples -nomake tools -no-exceptions -prefix /usr/local/Q ...

  9. 浅谈stylus与sass的对比

    all we konw , 这两个都是css的预编译工具,但虽然都是编译工具,但还是存在差别的,下面来讲讲其中的区别 1.变量 sass定义变量是以这种形式进行定义的$xxx:10;而stylus的定 ...

  10. IT安全军火库-转

    全球有260万信息安全专业人士,渗透测试工具是他们“安全军火库”中最常使用的装备,但直到最近,可用的渗透测试工具才丰富起来,但这也带来一个问题,挑选合适的渗透测试工具成了一件麻烦事,一个最简单的方法就 ...