登录
docker login [OPTIONS] [SERVER]
OPTIONS
--password, -p 密码
--password-stdin 从 stdin 获取密码
--username, -u 用户名
登录 docker hub
docker login --username ryanlid
默认情况下登录 Docker hub
登录阿里云镜像仓库
docker login --username=example@aliyun.com registry.cn-shenzhen.aliyuncs.com
登录腾讯云镜像仓库
docker login --username=123456 ccr.ccs.tencentyun.com
拉取镜像
docker pull [OPTIONS]
docker images pull [OPTIONS]
OPTIONS
--all-tag, -a 拉去所有的镜像
--disable-content-trust 跳过镜像校验
--platform 设置镜像所属平台
docker pull redis
docker pull mcr.microsoft.com/dotnet/core/runtime:2.2
docker pull hub.tencentyun.com/tgit/redis:4.0.22-alpine
https://synwebad.mirror.aliyuncs.com
docker pull hub.tencentyun.com/tgit/redis:4.0.22-alpine
docker pull ccr.ccs.tencent.com/username/ImageName:tags
列出本地镜像
docker image ls [OPTIONS]
docker images [OPTIONS]
OPTIONS
--all, -a 列出所有镜像
--digests 显示摘要 --filter, -f 根据提供的条件过滤输出
--format 格式化输出
--no-trunc 不要截断输出
-quiet, -q 仅显示数字 ID
docker image ls rdis:2.6
筛选
通配符筛选
docker image ls r*
docker image ls r*:2*
列出悬空镜像
docker images --filter "dangling=true"
Label 筛选
docker images --filter "label=MAINTAINER=docker@lidong.me"
按镜像的前后时间筛选
指定镜像之前
docker images --filter "before=redis:2.6"
指定镜像之后
docker images --filter "since=redis:2.6"
reference 筛选
docker images --filter "reference=r*:2.8*"
根据模版输出
占位符及描述
.ID 镜像 ID .CreatedSince 镜像创建了多长时间 .CreatedAt 创建镜像时间 .Repository 镜像存储库 .Tag 镜像标签 .Size 镜像大小 .Comment 注释 .Digest 镜像摘要
按镜像的前后时间筛选
docker images --format "{{.ID}} {{.CreatedSince}} :{{.Repository}}"
docker images --format "{{.ID}} {{.CreatedSince}} :{{.Repository}}" --filter "dangling=false"
运行镜像
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS
--add-host 添加自定义主机 IP 映射 在
/etc/hosts
文件添加一行--attach, -a 附加到 STDIN (标准输入), STDOUT (标准输出) STDERR (标准错误)
--cap-add
--cap-drop 移除 Linux 功能
--cidfile 将容器 ID 写入文件
--cpi-period
--cpu-quota
--cpu-shares, -c
--cpus
--cpuset-cpus
--detach, -d 在后台运行容器,并打印容器 ID
--device
--disable-content-trust
--dns 设置自定义的 DNS
--entrypoint
--denv, -e
--env-file
--expose
--health-cmd
--health-interval
--health-retries
--health-start-period
--health-timeout
--help
--hostname, -h
--ip
--ip6
--ipc
--label, -l
--lable-file
--link
--log-driver
--log-opt
--mac-address
--memory, -m
--memory-reservation
--memory-swap
--memory-swappiness
--kernel-memory
--mount
--name
--net
--network
--no-healthcheck
--oom-kill-disable
--privileged
--publish, -p
--publish-all, -P
--read-only
--restart
--rm
--stop-timeout
--storage-opt
--tmpfs
--tty, -t
--user, -u
--volume, -v
--volumes-from
--workdir, -w
简单运行
docker run redis
列出容器
docker ps [OPTIONS]
OPTIONS
--all, -a 显示所有容器,默认显示正在运行的容器 --filter, -f 根据提供的条件过滤输出 --format 使用模版格式化输出 --last, -n 默认 -1, 显示最后创建的容器(包括所有的状态) --latest, -l 显示最新创建的容器(包括所有的状态) --no-trunc 不要截断输出 --quiet, -q 仅显示 ID --size, -s 显示大小
查看正在运行的容器
docker ps
显示正在运行的和已停止的容器
docker ps -a
筛选
docker ps --filter
id 容器ID
name 容器名称
label 根据元数据的键或键值对的任意字符串进行过滤
exited 根据容器的状态过滤
status 根据容器的状态过滤,参数:created, restarting, running,removing, paused, exited, dead
ancestor 根据父级容器过滤
before 或 since
volume
network
publish 或 expose
health 根据容器的健康状况筛选容器,可选值为 starting, healthy, unhealthy, none
根据指定模版输出
占位符
.ID 容器 ID
.Image 镜像 ID
.Command 命令
.CreatedAt 创建时间
.RunningFor 自容器启动以来的时间
.Ports 暴露的端口
.Status 状态
.Size 大小
.Names 容器名称
.Labels 分配给容器的所有标签
.Label 此容器特定标签的值,例如 '{{.Label "com.docker.swarm.cpu}}'
.Mounts 此容器中安装的卷的名称
.Network 附加到此容器的网络的名称
输出不带表头的格式
docker ps -format "{{.Command}} {{.Status}}" --no-trunc
表格的形式输出
docker ps -format "table {{.ID}}\t{{.Name}}\t{{.Status}}"
查看镜像详情
docker image inspect IMAGE [IMAGE...]
删除镜像
docker image rm [OPTIONS] IMAGE [IMAGE...]
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS
--force, -f 强制删除镜像
--no-trunc 不删除未标记的父级
批量删除
删除悬空镜像
docker rmi $(docker images -f "dangling=true" -q)
按 lebel 筛选,批量删除镜像
docker rmi $(docker images --filter "label=MAINTAINER=main@docker.com" -q)
清理未使用的镜像
docker system prune [OPTIONS]
OPTIONS
--all, -a 删除所有未使用的镜像,而不仅仅是悬空的镜像
--filter
--force, -f
--volumes 清理卷
docker system prune
清理下面内容
- 已经停止的容器
- 未被容器使用的卷(volume)
- 未被容器关联的网络(network)
- 所有悬空的镜像
磁盘占用分析
docker system df [OPTIONS]
OPTIONS
--format 格式化输出
--verbose, -v 显示磁盘空间使用的详情信息
删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER ...]
OPTIONS
--force, -f 强制删除正在运行的容器
--link, -l 删除指定的容器之间的基础连接
--volumes, -v 删除与容器关联的卷(默认不会删除卷)
删除容器
docker rm container
停止容器后,再删除容器
docker stop container
docker rm container
强制删除正在运行的容器
docker rm container --force
删除所有已停止的容器
docker rm $(docker ps -a -q)
强制删除所有的容器
docker rm $(docker ps -a -q) --force
镜像构建
docker image build [OPTIONS] PATH | URL | -
简单构建
docker build ./
构建完成后移除中间镜像,指定构建的 Dockerfile 路径、镜像名和标签
docker build --rm -f "Dockerfile" -t dingtalk:latest .
镜像历史
docker image history [OPTIONS] IMAGE
docker history [OPTIONS] IMAGE
OPTIONS
--format 使用模版格式化输出
--human, -H 以人类可读的格式打印大小和日期
--no-trunc 不要截断输出,比如过长的字段值
--quiet, -q 仅显示数字 ID
查看镜像历史
docker image history dingtalk.net
占位符
.ID 镜像 ID
.CreatedSince 镜像创建了多长时间
.CreatedAt 创建时间
.CreatedBy 用于创建该层的命令
.Size 大小
.Comment 注释
格式化输出
docker image history dingtalk.net --format "{{.CreatedSince}}:{{.CreatedBy}}" --no-trunc
修改镜像名称和标签
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag dingtalk ryanlid/dingtalk
镜像推送
docker push ryanlid/dingtalk