这个《Docker入门系列》文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成。主要是作为个人学习记录。有错误的地方,Robin欢迎大家指正。分为如下几个部分:

1 Docker入门:简介

2 Docker入门:安装/卸载

3 Docker入门:容器(Containers)

4 Docker入门:服务(Services)

5 Docker入门:Swarms

6 Docker入门:Stacks

7 Docker入门:部署app

8 Docker入门:稍高级的话题

2.1 版本及平台简介

Docker有两个主要版本:CE(Community Edition)和EE(Enterprise Edition)。

Docker CE是开发者和小团队的理想选择,可以通过它了解Docker,并体验基于容器的应用程序。本文使用Docker CE。

Docker可以支持许多平台。比如,

(1)桌面系统:MAC/WINDOWS;

(2)云平台:AWS/Azure;

(2)服务器:CentOS/Debian/Fedora/Windows server2016/Red Hat Enterprise Linux等。

本文在CentOS上安装。

2.2 删除老版本

旧的Docker版本被称为docker或docker-engine。如果存在旧版本,就卸载它们及其关联的依赖。

使用如下命令卸载老版本:

$ sudo yum remove docker docker-common docker-selinux docker-engine

卸载后,/var/lib/docker/的内容依然保留,包括映像,容器,卷,和网络配置。

新的Docker包名字为docker-ce。

2.3 安装的三种方式

根据需要,可选择三种方式安装Docker。

  • 很多用户配置Docker仓库,并从仓库中安装Docker,从而简化安装和升级工作。这是推荐方式。本文采用这种方式。
  • 有的用户下载RPM包并手动安装,升级也是手动进行。这种方式适合在无法连接互联网时安装Docker。
  • 在开发/测试环境中,有的用户选择使用自动化脚本来安装Docker。

2.4 安装Docker

采用上述第一种方式(install using the repository)进行安装。采用如下几节步骤。

2.4.1 配置仓库

分为如下步骤:

(1)安装需要的包。yum-utils提供yum-config-manager管理工具;devicemapper存储驱动需要device-mapper-persistent-data和lvm2。

[root@localhost /]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Loaded plugins: fastestmirror, langpacks

base                                                                                                         | 3.6 kB  00:00:00

extras                                                                                                       | 3.4 kB  00:00:00

updates                                                                                                      | 3.4 kB  00:00:00

updates/7/x86_64/primary_db                                                                                  | 2.7 MB  00:00:18

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.tuna.tsinghua.edu.cn

Package yum-utils-1.1.31-42.el7.noarch already installed and latest version

Package device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64 already installed and latest version

Package 7:lvm2-2.02.171-8.el7.x86_64 already installed and latest version

Nothing to do

(2)使用如下命令安装stable仓库:

[root@localhost /]# sudo yum-config-manager \

--add-repo https://download.docker.com/linux/centos/docker-ce.repo

Loaded plugins: fastestmirror, langpacks

adding repo from: https://download.docker.com/linux/centos/docker-ce.repo

grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo

repo saved to /etc/yum.repos.d/docker-ce.repo

(3)使能/不使能edge仓库和test仓库。本步骤为可选的,略。

2.4.2 安装Docker CE

如果安装Docker CD的最新版本,采用如下命令:

$ sudo yum install docker-ce

警告:如果你使能了多个Docker仓库,使用命令yum install或yum update进行安装或升级时,将会安装最高(新)的版本,这可能不满足你的版本需求。

如果你是第一次通过最新添加的仓库来安装,将会提示接受GPG key,并且该key的fingerprint将会显示出来,只有接受该key,才能继续安装,这个fingerprint要和下面的值匹配:

060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35.

如果要安装Docker CE的特定版本。首先列出可用的版本,并使用命令sort –r进行排序:

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

docker-ce.x86_64            17.09.ce-1.el7.centos             docker-ce-stable

列出的内容取决于使能了哪些仓库,并和CentOS的特定版本(由.e17标识)有关。然后选择一个版本安装。第二列是版本号,你可以使用整个字符串,但至少使用到第一个连接符。第三列是仓库名称,用于标识来自于哪个仓库。本示例中的全限定名称为:docker-ce-17.09.ce。安装命令如下:

$ sudo yum install <FULLY-QUALIFIED-PACKAGE-NAME>

2.4.3 启动Docker

使用如下命令启动:

$ sudo systemctl start docker

2.4.4 测试验证

通过运行hello-world映像来验证Docker是否正确安装:

[root@localhost /]# sudo docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

5b0f327be733: Pull complete

Digest: sha256:07d5f7800dfe37b8c2196c7b1c524c33808ce2e0f74e7aa00e603295ca9a0972

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

这个命令会下载一个测试映像,并在一个容器中运行。当容器运行时,将会打印一条信息然后结束。

Docker CE安装运行后,可以使用sudo来运行Docker命令。

2.4.5 查看Docker版本号

[root@localhost /]# docker --version

Docker version 17.09.0-ce, build afdb6d4

2.5 升级Docker CE

采用如上安装步骤来升级Docker CE。

2.6 卸载Docker CE

使用如下命令卸载Docker包:

$ sudo yum remove docker-ce

上面命令只是卸载Docker包,而映像(images)、容器(containers)、卷(volumes)、用户配置的文件并不会从你的主机上自动删除,使用如下命令删除这些东西:

$ sudo rm -rf /var/lib/docker

必须手动删除已编辑的配置文件。

Docker入门(二):安装/卸载的更多相关文章

  1. docker入门_docker安装

    docker入门_docker安装 ubuntu 安装 curl -sSL https://get.daocloud.io/docker | sh # 官方安装脚本自动安装 systemctl ena ...

  2. Docker入门之安装Docker

    目录 目录 1 1. 前言 1 2. 创建网桥 2 3. 安装Docker 2 3.1. 二进制安装 3 3.1.1. 下载安装 3 3.1.2. 配置服务 3 3.1.3. 启动服务 4 3.2. ...

  3. Docker 入门及安装[Docker 系列-1]

    docker 如日中天,这不是单纯的炒概念,docker 确确实实解决了开发与运维的痛点,因此在企业开发中得到了非常广泛的使用,本文对于 docker 的这些基本知识点再做一些简单回顾. 什么是 do ...

  4. Docker入门之安装与使用

    1. 安装(windows) win7.win8以及win10家庭版 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliy ...

  5. Docker入门二

    容器管理 1.docker create创建一个容器,但容器并没启动,就和我们创建虚拟机一样,创建了虚拟机后没启动 [root@centos-02 ~]# docker create -it cent ...

  6. docker入门及安装

    Docker简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).ba ...

  7. Hbase入门(二)——安装与配置

    本文讲述如何安装,部署,启停HBase集群,如何通过命令行对Hbase进行基本操作. 并介绍Hbase的配置文件. 在安装前需要将所有先决条件安装完成. 一.先决条件 1.JDK 和Hadoop一样, ...

  8. Docker入门之安装与简单使用操作

    1.docker安装 #1.检查内核版本,必须是3.10及以上 uname -r #2.安装 yum -y install docker 2.docker简单使用 #1.启动docker system ...

  9. Docker笔记(二) 安装常用软件

    常用环境安装 这里收集一些常用环境的安装步骤,可直接复制进行使用,节省安装时间,后续会随时补充 安装MySQL5.7.32 下载mysql5.7.32的镜像 ( 记得下载镜像要先确保镜像仓库中存在这个 ...

  10. docker入门(二)容器与镜像的理解

    10张图带你深入理解Docker容器和镜像 申明:此篇文章是转载的(原文地址http://dockone.io/article/783),今天意外发现已经有人转载了(复制了),希望大家关注原创 原本打 ...

随机推荐

  1. linux memcached php 整合

    http://blog.csdn.net/liruxing1715/article/details/8269563

  2. Android应用开发:网络工具——Volley(二)

    引言 在Android应用开发:网络工具--Volley(一)中结合Cloudant服务介绍了Volley的一般使用方法.当中包括了两种请求类型StringRequest和JsonObjectRequ ...

  3. 九度OJ 1077:最大序列和 (DP)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5600 解决:1637 题目描述: 给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的"序列和&qu ...

  4. MySql 三大知识点——索引、锁、事务(转)

    1. 索引 索引,类似书籍的目录,可以根据目录的某个页码立即找到对应的内容. 索引的优点:1. 天生排序.2. 快速查找.索引的缺点:1. 占用空间.2. 降低更新表的速度. 注意点:小表使用全表扫描 ...

  5. ubuntu 下解决sublime v3 中文输入法时 退格键删除不了拼音的问题

    ubuntu下,sulime想要支持中文需要这样设置: 1.安装中文输入解决的github git clone https://github.com/lyfeyaj/sublime-text-imfi ...

  6. 【题解】 CF11D A Simple Task

    [题解] CF11D A Simple Task 传送门 \(n \le 20\) 考虑状态压缩\(dp\). 考虑状态,\(dp(i,j,O)\)表示从\(i\)到\(j\)经过点集\(O\)的路径 ...

  7. 列举Python常用数据类型并尽量多的写出其中的方法

    #1 把字符串的第一个字符大写 string.capitalize() #2 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 string.center(width) #3 返回 ...

  8. 流畅python学习笔记:第二十章:属性描述符:

    在前面一章中介绍了@property的用法,但是存在一个问题,如果我有多个属性想转变成property特性,那不是针对每个都需要实现一个 @propery.setter 和 @property.get ...

  9. 韩国版微信Kakao推出公链,能否用区块链实现全球扩张?

    2018年是属于区块链的一年,国内外巨头们纷纷布局区块链产业,前不久韩国最大的移动社交平台Kakao集团正式启动了旗下的第一个公链Klaytn的测试网. 此次宣布只是一次试探性举措,旨在对外公布Kla ...

  10. Java性能分析方法

    Java调优经验 http://www.rowkey.me/blog/2016/11/02/java-profile/