Docker 命令

创建
阅读 35

登录

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

本文链接 https://www.yidiankuaile.com/post/docker-command