一、安装CentOS版DockerCE
1.1 卸载旧的版本
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
1.2 使用yum安装最新版Docker
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
此处可以用国内源
yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
二、使用镜像
2.1 获取镜像
2.1.1 首先查找镜像
具体命令为:
docker search 镜像名
一般第一个没有多余名字的centos就是官方发布的。推荐使用
2.1.2 下载镜像
具体命令为:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
具体的选项可以通过 docker pull --help
命令看到,这里我们说一下镜像名称的格式。
- Docker 镜像仓库地址:地址的格式一般是
<域名/IP>[:端口号]
。默认地址是 Docker Hub。 - 仓库名:如之前所说,这里的仓库名是两段式名称,即
<用户名>/<软件名>
。对于 Docker Hub,如果不给出用户名,则默认为library
,也就是官方镜像。
举例:
此处我已经下载过了。
2.1.3 列出所有已经下载的镜像:
具体的命令为:
docker images/docker image ls/docker image list
可以看到镜像仓库,标签,和ID,创建日期等等。注意这里的size
此处的sizi要远远小于官方给的镜像大小,因为官方的是经过压缩的。此处显示的大小是我们下载过来解压后的大小
docker system df //可以查看镜像个数,容器,数据卷所占用的空间
补充:虚悬镜像(dangling image):这个镜像原本是有镜像名和标签的,比如 原来为 mongo:3.2
,随着官方镜像维护,发布了新版本后,重新 docker pull mongo:3.2
时,mongo:3.2
这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成为了 <none>
。除了 docker pull
可能导致这种情况,docker build
也同样可以导致这种现象。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 <none>
的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image) ,可以用下面的命令专门显示这类镜像:
docker image ls -f dangling=true
一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除。
docker image prune
2.1.4 镜像的使用
docker run -it ubuntu:18.04 /bin/bash
-it
:这是两个参数,一个是-i
:交互式操作,一个是-t
终端。我们这里打算进入bash
执行一些命令并查看返回结果,因此我们需要交互式终端。ubuntu:18.04
:这是指用ubuntu:18.04
镜像为基础来启动容器。bash
:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是bash
。
通过exit退出容器
2.1.5 镜像的删除
docker image rm [选项] <镜像1> [<镜像2> ...]
docker rmi 镜像