docker常用命令

查看版本

docker version

镜像操作

docker images

–all(-a)	查看本地所有镜像(包括悬空镜像)	docker images -a
–quiet(-q)	查看本地镜像的镜像ID信息	docker images -q
–digests	显示镜像的摘要写信息	
–no-trunc	查看完整的镜像信息	
–format	指定返回值的模板文件	docker images -format “{{.ID}}”
–filter(-f)	显示满足条件的镜像信息	docker images -f dangling=true
指定仓库名、标签查询镜像信息 : docker images ubuntu:16.04

标记本地镜像,将其归入某一仓库

docker tag
docker tag busybox:test zhengql/busybox:v1.0.1	将镜像busybox:test标记为一个新的镜像zhengql/busybox:v1.0.1
docker tag busybox zhengql/busybox:v1.0.1	将镜像busybox(默认tag为latest)标记为一个新的镜像zhengql/busybox:v1.0.1
docker tag 0e5574283393 zhengql/httpd:v1.0.2	将ID为0e5574283393的镜像标记为一个新的镜像zhengql/busybox:v1.0.2

删除本地一个或多个镜像

docker rmi fd484f19954f	删除指定ID的某个镜像
docker rmi zhengql/busybox:v1.0.1	删除指定名称和标签的某个镜像
docker rmi 0e5574283393 f753707788c5 1e0c3dd64ccd	删除指定ID的多个镜像
docker rmi zhengql/busybox:v1.0.1 hello-world:latest httpd:latest	删除指定名称和标签的多个镜像
docker rmi -f fd484f19954f	强制删除镜像

用于使用 Dockerfile 构建镜像

docker build [OPTIONS] PATH|URL|-
–file(-f)	指定要使用的Dockerfile文件路径
-m	设置内存最大值
–no-cache	创建镜像的过程不使用缓存
–quiet(-q)	安静模式,成功后只输出镜像 ID
–force-rm	构建镜像过程中删除中间容器
–tag(-t)	镜像的名字及标签,通常 name:tag 或者 name 格式

docker build .	通过当前目录的DockerFile构建镜像(path为".")
docker build github.com/creack/docker-firefox	通过url地址所在目录下DockerFile构建镜像
docker build -t zhengql/myDemo:1.0 .	通过当前目录的DockerFile构建镜像并指定镜像的名称和tag (path为".")
docker build -f Dockerfile.debug .	通过当前目录下的DockerFile.debug构建镜像(path为"."

指定镜像保存成 tar 归档文件

docker save
docker save [OPTIONS] IMAGE [IMAGE...]
–output(-o)	输出到的文件	docker save -o my_demo_v1.tar zhengql/myDemo:v1

基于tar文件创建镜像

docker load
docker load [OPTIONS]
–input(-i)	指定要读取的tar文件	docker load -i my_demo_v1.tar

仓库类操作

登录/登出某Docker镜像仓库

docker login/logout
docker login/logout [OPTIONS] [SERVER]
 	默认登录官方仓库	docker login
 	登录指定私有仓库	docker login localhost:5000
–username(-u)	指定登录用户名	
–password(-p)	指定登录密码	docker login -u zhengql -p 6666666

从Docker Hub查找镜像

docker search
docker search [OPTIONS] TERM
 	查看官方仓库中名称包含busybox的镜像	docker search busybox
–filter(-f)	设置搜索条件	docker search --filter stars=3 busybox
–format	设置返回结果的模板	docker search --format “{{.Name}}: {{.StarCount}}” busybox
–limit	最大搜索结果数量,默认25	docker search --limit=10 busybox
–no-trunc	显示完整的镜像描述	docker search --no-trunc busybox
–stars(-s)	列出starts数不小于指定值的镜像(已废弃,可使用-f)	docker search --stars=3 busybox
–automated	列出 automated build类型的镜像(已废弃,可使用-f)	docker search --filter is-automated busybox

从镜像仓库中拉取或者更新指定镜像

docker pull
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
 	从Docker Hub下载java最新版镜像	docker pull java
 	从私有仓库下载hello-world镜像	docker pull 10.200.0.204:5000/hello-world:v1
 	通过摘要(digest )从仓库下载hello-world镜像	docker pull busybox@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
–all-tags(-a)	拉取所有 tagged 镜像	docker pull -a java
–disable-content-trust	忽略镜像的校验,默认开启	

将本地的镜像上传到镜像仓库

docker push 
docker push [OPTIONS] NAME[:TAG]
docker push myDemo:v1	上传本地镜像myDemo:v1到镜像仓库中
docker push 10.200.0.204:5000/myDemo:v1	上传本地镜像10.200.0.204:5000/myDemo:v1到私有仓库(10.200.0.204:5000)

生命周期管理

创建一个新的容器并运行

docker run 
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
–detach(-d)	在后台运行容器并打印容器ID
–name	为容器指定名称
–interactive(-i)	以交互模式运行容器,通常与 -t 同时使用
–tty(-t)	为容器重新分配一个伪输入终端,通常与 -i 同时使用
–publish(-p)	将容器的端口发布到主机
–publish-all(-P)	将所有公开的端口发布到随机端口
–cpu-shares(-c)	CPU份额(相对权重)
–hostname(-h)	设置容器主机名
–env(-e)	设置环境变量
–memory(-m)	拉取所有 tagged 镜像
–user(-u)	用户名或UID(格式:<name
–rm	退出时自动删除容器
–privileged	为此容器提供扩展权限
–workdir(-w)	容器内的工作目录
–workdir(-w)	容器内的工作目录
–workdir(-w)	容器内的工作目录
–volume(-v)	绑定一个卷
–volume-driver	容器的可选卷驱动程序
–volumes-from	从指定容器装载卷
–workdir(-w)	容器内的工作目录
–read-only	将容器的根文件系统挂载为只读

docker run --name mydemo -d mydemo:latest	使用docker镜像mydemo:latest以后台模式启动一个容器,并将容器命名为mydemo。
docker run -P -d nginx:latest	使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
docker run -p 8088:8011 -d mydemo:latest	使用镜像mydemo:latest以后台模式启动一个容器,将容器的 8011 端口映射到主机的 8088 端口,
docker run -v /data:/data -d mydemo:latest	使用镜像mydemo:latest以后台模式启动一个容器,并将主机的目录 /data 映射到容器的 /data。
docker run -it nginx:latest /bin/bash	使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令

创建一个新的容器但不启动它

docker create
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

该命令的用法与docker run相同,两者唯一的区别在于:

docker run:创建并启动容器
docker create:仅仅创建而不启动,需要手动docker start启动
docker create 适用于当需要提前设置容器配置,等在需要时直接启动的场景

启动/停止/重启一个或多个容器

docker start/stop/restart

通过容器名称操作:

docker start mydemo1 mydemo2 mydemo3

通过容器id操作

docker start b58b3ad0e9a5 f7076bf32313 fce289e99eb9

暂停/恢复一个或多个容器中所有的进程

docker pause/unpause

案例同上

杀掉一个或多个正在运行的容器

docker kill
docker kill [OPTIONS] CONTAINER [CONTAINER...]
–signal(-s)	发送信号到容器,默认发送KILL,也可通过 -s指定要发送的信号

docker kill myDemo1 myDemo2
docker kill --signal=SIGHUP  b58b3ad0e9a5

删除一个或多个容器

docker rm
docker rm [OPTIONS] CONTAINER [CONTAINER...]

–force(-f)	强制删除正在运行的容器	docker rm -f myDemo1 myDemo2	强制删除容器myDemo1 myDemo2
–link(-l)	移除容器间的网络连接,而非容器本身	docker rm -l aaa	删除连接名aaa下引用的容器
–volumes(-v)	删除容器的同时删除与容器关联的卷	docker rm -v mydemo1	删除容器mydemo1,并删除容器挂载的数据卷

在运行的容器中执行命令

docker exec
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
–detach(-d)	分离模式: 在后台运行
–interactive(-i)	开启标准输入,即使未与容器连接,也维持标准输入,通常与 -t 同时使用
–tty(-t)	分配一个伪终端,通常与 -i 同时使用
–privileged	为命令提供扩展权限
–evn(-e)	设置环境变量
–user(-u)	用户名或UID(格式:<name
–workdir(-w)	容器内的工作目录

docker exec -d myDemo touch /tmp/execWorks	在后台运行的容器内 创建一个新文件/tmp/execWorks
docker exec -it -w /root myDemo	设置要执行的命令的工作目录
docker exec -i -t myDemo /bin/bash	在容器 myDemo 中开启一个交互模式的终端

容器操作

查询当前容器列表

docker ps
docker ps [OPTIONS]
–all(-a)	显示所有容器
–filter(-f)	条件筛选容器
–format	设置查询结果的显示模板
–last(-n)	显示最后创建的容器(包括所有状态)
–latest(-l)	显示最新创建的容器(包括所有状态)
–no-trunc	不截断输出
–quiet(-q)	仅显示容器ID
–size(-s)	显示总文件大小

docker ps	查询所有在运行中的容器信息
docker ps -a	查询所有状态全部的容器信息
docker ps -n 5	查询最近创建的5个容器信息
docker ps -q -a	查询所有的容器ID
docker ps --filter “name=abc”	查询名字包含abc的容器信息
docker ps --filter status=running	查询运行状态下的所有容器信息
docker ps --format “{{.ID}}: {{.Command}}”	查询容器信息并以ID : Command形式显示结果

获取容器的日志

docker logs
docker logs [OPTIONS] CONTAINER
–follow(-f)	跟踪日志输出
–tail	仅列出最新N条容器日志
–details	显示提供给日志的额外细节
–since	显示某个开始时间之后的所有日志
–until	显示某个截止时间之前的所有日志
–timestamps(-t)	日志头部显示时间戳

docker logs -f mydemo	跟踪查看容器mydemo的日志输出
docker logs -f --tail=200 mydemo	查看容器mydemo最新200条日志并跟踪查看日志输出
docker logs -f -t --tail=200 mydemo	查看容器mydemo最新200条日志并跟踪查看日志输出,每条日志头部填充时间信息
docker logs -t --since=“2019-01-01T12:23:37” --until “2019-04-09T12:23:37” mydemo	查询指定时间段内的myDemo容器的日志

查看容器的端口映射情况

docker port 
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]

docker port myDemo
5000/tcp -> 0.0.0.0:5000

查看容器中运行的进程信息

docker top 
docker top [OPTIONS] CONTAINER [ps OPTIONS]

查看容器myDemo的进程信息:docker top myDemo

获取容器/镜像的元数据

docker inspect 
docker inspect [OPTIONS] NAME|ID [NAME|ID...]

–format(-f)	指定返回值的模板文件	docker inspect -f “{{.NetworkSettings.IPAddress}}” myDemo	显示容器的IP地址
–size(-s)	显示总的文件大小		
–type	为指定类型返回JSON	

阻塞运行一个或多个容器,直到容器停止,然后打印出它的退出代码

docker wait

将容器的文件系统导出为tar文件包

docker export 
docker export [OPTIONS] CONTAINER

–output(-o)	将输入内容写到文件	docker export --output=“myDemo.tar” myDemo	将myDemo容器保存为tar归档文件

连接到正在运行中的容器

docker attach 
docker attach [OPTIONS] CONTAINER
docker attach myDemo  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值