10分钟快速掌握Docker必备基础知识( 三 )


对于比较老的Mac OS操作系统 , 也可以像Windows一样 , 使用Docker Toolbox , 这点可以参考上面的介绍 。
在Mac OS上安装完成之后 , 在Application中找到Docker图标 , 双击打开便可以启动Docker了 , 如下:

10分钟快速掌握Docker必备基础知识

文章插图
在Linux上安装
在Linux操作系统上的安装 , 主要以Centos7为例 , 其他Linux系统的发行版本 , 如Ubuntu , Debian , Fedora等 , 可以自行查询Docker的官方文档 。
删除旧的docker版本
可能有些Linux预先安装Docker , 但一般版本比较旧 , 所以可以先执行以下代码来删除旧版本的Docker 。
$ sudo dnf remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
指定安装版本
$ sudo yum-config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo
使用yum安装docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动docker服务器
# 启动docker守护进程
$ sudo systemctl start docker
测试安装是否成功
通过上面几种方式安装了Docker之后 , 我们可以通过下面的方法来检测安装是否成功 。
打印docker版本
# 打印docker版本
$ docker version
拉取镜像并运行容器
# 拉取hello-world镜像
docker pull hello-world
# 使用hello-world运行一个容器
docker run hello-world
运行上面的命令之后 , 如果有如下图所示的输出结果 , 则说明安装已经成功了 。
10分钟快速掌握Docker必备基础知识

文章插图
Docker的基本概念镜像(Image)、容器(Container)与仓库(Repository) , 这三个是docker中最基本也是最核心的概念 , 对这三个概念的掌握与理解 , 是学习docker的关键 。
镜像(Image)
什么是Docker的镜像?
Docker本质上是一个运行在Linux操作系统上的应用 , 而Linux操作系统分为内核和用户空间 , 无论是Centos还是Ubuntu , 都是在启动内核之后 , 通过挂载Root文件系统来提供用户空间的,而Docker镜像就是一个Root文件系统 。
Docker镜像是一个特殊的文件系统 , 提供容器运行时所需的程序、库、资源、配置等文件 , 另外还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等) 。
镜像是一个静态的概念 , 不包含任何动态数据 , 其内容在构建之后也不会被改变 。
下面的命令是一些对镜像的基本操作 , 如下:
查看镜像列表
# 列出所有镜像
docker image ls
由于我们前面已经拉取了hello-world镜像 , 所以会输出下面的内容:
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 7 months ago 1.84kB
下面的命令也一样可以查看本地的镜像列表 , 而且写法更简洁 。
# 列表所有镜像
docker images
从仓库拉取镜像
前面我们已经演示过使用docker pull命令拉取了hello-world镜像了 , 当然使用docker image pull命令也是一样的 。
一般默认是从Docker Hub上拉取镜像的 , Docker Hub是Docker官方提供的镜像仓库服务(Docker Registry) , 有大量官方或第三方镜像供我们使用 , 比如我们可以在命令行中输入下面的命令直接拉取一个Centos镜像:
docker pull centos
docker pull命令的完整写法如下:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
拉取一个镜像 , 需要指定Docker Registry的地址和端口号 , 默认是Docker Hub , 还需要指定仓库名和标签 , 仓库名和标签唯一确定一个镜像 , 而标签是可能省略 , 如果省略 , 则默认使用latest作为标签名 , 另外 , 仓库名则由作者名和软件名组成 。
那么 , 我们上面使用centos , 那是因为省略作者名 , 则作者名library,表示Docker官方的镜像 , 所以上面的命令等同于:


推荐阅读