Docker常用命令

本文详细介绍了Docker中管理容器和镜像的各种操作,包括列出容器、查看容器日志、杀死和重启容器、删除与创建容器、启动和停止容器、配置容器、拷贝文件、查看容器数据、保存和恢复容器、监控资源使用、导出和导入镜像、删除和搜索镜像、拉取和制作镜像,以及容器和镜像的其他高级用法。这些命令对于日常的Docker操作至关重要。
摘要由CSDN通过智能技术生成

容器:

【1】列出容器

docker ps [OPTIONS]

OPTIONS说明:

  • -a :显示所有的容器,包括未运行的。
  • -f :根据条件过滤显示的内容。
  • --format :指定返回值的模板文件。
  • -l :显示最近创建的容器。
  • -n :列出最近创建的n个容器。
  • --no-trunc :不截断输出。
  • -q :静默模式,只显示容器编号。
  • -s :显示总的文件大小。

示例:

#查看正在运行的容器
docker ps
#查看所有的容器
docker ps –a
#检索所有包含peer0的容器
docker ps -a | grep peer0

【2】查看容器日志

docker logs [OPTIONS] CONTAINER_ID

  Options:

  • --details            显示更多的信息
  • -f, --follow         跟踪实时日志
  • --since string    显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
  • --tail string        从日志末尾显示多少行日志, 默认是all
  • -t, --timestamps     显示时间戳
  • --until string      显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

示例:

#查看容器baa8ca7f50f5的日志

docker logs baa8ca7f50f5 | tail -20

【3】杀死正在运行的容器

杀死某个容器

docker kill 容器ID

杀死所有正在运行的容器

docker kill $(docker ps -a -q)

【4】删除容器

删除某个容器

docker rm 容器ID

删除所有已经停止的容器

docker rm $(docker ps -a -q)

【5】重启容器

docker restart 容器ID

【6】启动和停止容器

#停止容器
docker stop 容器id或者容器名
#启动容器
docker start 容器id或者容器名

【7】创建容器

实际上是有docker create方法的,这样就是创建一个容器,并不会运行,run相当于create+start,新版docker推荐使用run

docker run [OPTIONS]

  • -i:表示创建并运行容器
  • -t:表示容器启动后会进入其命令行。通常于-i一起使用:-it表示创建并运行容器,且运行之后自动进入为当前应用打开一个默认终端
  • --name :为创建的容器命名。
  • -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。
  • -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行,与-t相反。
  • -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口,程序访问是通过宿主机映射端口来访问容器的。可以使用多个-p做多个端口映射。
  • -e:表示添加容器的环境变量。
  • --rm:让容器在退出时,自动清除挂在的卷,以便清除数据。等价于在容器退出后,执行docker rm -v。

(1)交互式的方式创建容器:

这样的方式我们直接就进入了容器内部

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

(2)后台式创建容器:

这样的方式创建成功之后没有进入容器内部

docker run -id --name=容器名称 镜像名称:标签

如果想要进入容器内部可以用下面的命令:

docker exec -it 容器名称(或者容器ID) /bin/bash

(3)目录映射

我们可以在创建容器的时候通过 -v参数,将宿主机的目录文件与容器内的目录文件进行映射,这样我们就可以通过修改宿主机目录文件从而去影响容器。

#格式:创建容器 –v 宿主机的目录:容器的目录
docker run -id -v /usr/local/dunm.rdb:/data/dunm.rdb --name=myRedis redis:latest

(4)通过镜像文件创建容器 

docker run -id --name=docker_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=rootcentos/mysql-57-centos7

 MYSQL_ROOT_PASSWORD参数表示登录MySQL的root用户的密码。

(5)配置容器磁盘使用空间大小

docker run -it --storage-opt size=120G fedora /bin/bash

【8】拷贝容器文件

#把宿主机的文件拷贝到容器里
docker cp 需要拷贝的文件或目录 容器名称:容器目录
#从容器中拷贝文件到宿主机
docker cp 容器名称:容器目录 需要拷贝的文件或目录

【9】查看容器的数据

docker inspect 容器名称(容器ID)

【10】把容器保存为镜像

docker commit 容器名 保存的镜像名

【11】容器备份

docker save –o 打包的后的文件名.tar 镜像名

【12】容器恢复

docker load –i 你的备份镜像tar包

【13】监控容器使用的系统资源

docker stats

默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:

[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。 
[PIDS]:PID 号。

如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态:

docker stats --no-stream

只输出指定的容器:

docker stats --no-stream 容器的名称或容器ID

注意,多个容器的名称或者是 ID 之间需要用空格进行分割

格式化输出的结果:

docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

docker stats 命令支持我们通过 --format 选项自定义输出的内容和格式

上面的命令中我们只输出了 Name, CPUPerc 和 Memusage 三列。下面是自定义的格式中可以使用的所有占位符:

.Container    根据用户指定的名称显示容器的名称或 ID。
.Name           容器名称。
.ID                 容器 ID。
.CPUPerc       CPU 使用率。
.MemUsage  内存使用量。
.NetIO           网络 I/O。       
.BlockIO        磁盘 I/O。
.MemPerc     内存使用率。
.PIDs             PID 号。

有了这些信息我们就可以完全按照自己的需求或者是偏好来控制 docker stats 命令输出的内容了。

除了以 table 格式输出结果,还可以通过 format 选项输出 json 格式的结果:

docker stats --no-stream --format "{\"container\":\"{{ .Container }}\",\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"cpu\":\"{{ .CPUPerc }}\"}"

【14】导出容器

docker export -o export123.tar a404c6c174a2

docker export [OPTIONS] CONTAINER
OPTIONS说明:

  • -o :将输入内容写到文件。

镜像:

【1】列出镜像

docker images

字段说明: 

  • REPOSITORY:镜像名称

  • TAG:镜像标签

  • IMAGE ID:镜像ID

  • CREATED:镜像的创建日期(不是获取该镜像的日期)

  • SIZE:镜像大小

【2】删除镜像

删除某个镜像

docker rmi 镜像ID

删除所有镜像

docker rmi $(docker images -q)

【3】强制删除所有镜像

docker rmi -f $(docker images -q)

【4】搜索镜像

docker search 镜像名

【5】拉取镜像

docker pull 镜像名:版本

如果不加版本默认会为我们下载latest版本

【6】制作镜像

docker build -t 镜像名 .

最后是有个“.”的,表示使用当前目录的Dockerfile构建;

-t参数表示制成的镜像名,可任意定义。

【7】将镜像保存为归档文件

docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3

docker save [OPTIONS] IMAGE [IMAGE...]

OPTIONS 说明:

  • -o :输出到的文件。

 【8】从归档文件创建镜像

docker import  my_ubuntu_v3.tar runoob/ubuntu:v4

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
OPTIONS说明:

  • -c :应用docker 指令创建镜像;
  • -m :提交时的说明文字;

【9】从归档文件导入镜像

docker load --input fedora.tar
docker load < busybox.tar.gz

docker load [OPTIONS]
OPTIONS 说明:

  • --input , -i : 指定导入的文件,代替 STDIN。
  • --quiet , -q : 精简输出信息。

docker load和docker import的区别:

实际上,既可以使用docker load命令来导入镜像库存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库。

两者的区别在于容器快照将会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积也会更大。此外从容器快照文件导入时,也可以重新指定标签等元数据。

【10】修改镜像的tag和name

docker tag 9aed1ced115f imagename:1.0.4

【11】清理Build缓存

docker builder prune

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值