docker安装与简单使用
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,无论是为了性能、稳定性还是空间利用率。