docker安装与简单使用
Devin hao Architect

docker安装与简单使用(来自docker官方)

系统要求:

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10,安装最新版CE,推荐使用CentOS 7.6

卸载旧版本:

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

使用 yum 安装:依赖

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

设置稳定存储库:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

新建docker文件夹

mkdir  /etc/docker 

修改docker的配置文件daemon.json,这里只添加了加速器(可以显著提升拉取速度)

vi /etc/docker/daemon.json

{
"registry-mirrors": ["https://registry.docker-cn.com",
"https://9n9n3nrq.mirror.aliyuncs.com"]
}

以上准备工作做好之后,下面开始步入正题:

安装 Docker CE

更新 yum 软件源缓存,并安装 docker-ce。


1.选择自己需要的版本安装

列出并对您的仓库中可用的版本进行排序。此示例按版本号对结果进行排序,从最高到最低,并被截断:

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

选择版本号,对应安装

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

2.选择最新版本安装

sudo yum makecache fast
sudo yum install docker-ce

以 busybox 为关键词进行搜索:

docker search busybox

拉镜像:

docker pull busybox
docker pull ubuntu:16.04

运行

docker run -it --rm \
    ubuntu:16.04 \
    /bin/bash

列出镜像

docker image ls

列表包含了 仓库名、标签、镜像 ID、创建时间 以及所占用的空间。

镜像体积

docker system df

虚悬镜像

上面的镜像列表中,还可以看到一个特殊的镜像,这个镜像既没有仓库名,也没有标签,均为 <none>

docker image ls -f dangling=true

删除此镜像

docker image prune

中间层镜像

为了加速镜像构建、重复利用资源,Docker 会利用 中间层镜像。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认的 docker image ls 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 -a 参数。
docker image ls -a

列出部分镜像

docker image ls ubuntu
docker image ls ubuntu:16.04

以特定格式显示

默认情况下,docker image ls 会输出一个完整的表格,
但是我们并非所有时候都会需要这些内容。

比如,刚才删除虚悬镜像的时候,
我们需要利用 docker image ls 把所有的虚悬镜像的 ID 列出来,
然后才可以交给 docker image rm 命令作为参数来删除指定的这些镜像,这个时候就用到了 -q 参数。

docker image ls -q

下面的命令会直接列出镜像结果,并且只包含镜像ID和仓库名(标签):

docker image ls --format "{{.ID}}: {{.Repository}}"
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

删除本地镜像

docker image rm

我们可以用镜像的完整 ID,也称为 长 ID,来删除镜像。使用脚本的时候可能会用长 ID,但是人工输入就太累了,所以更多的时候是用 短 ID 来删除镜像。docker image ls 默认列出的就已经是短 ID 了,一般取前3个字符以上,只要足够区分于别的镜像就可以了。

docker image ls
docker image rm centos

使用镜像摘要删除

docker image ls --digests
docker image rm node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228

对于 CentOS/RHEL 的用户来说,在没有办法使用 UnionFS 的情况下,一定要配置 direct-lvm 给 devicemapper,无论是为了性能、稳定性还是空间利用率。

参考文献:

  1. https://blog.lab99.org/post/docker-2016-07-14-faq.html
  2. https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1
  3. https://blog.csdn.net/kamputer/article/details/79047765