您现在的位置是:首页 > 编程 > 

【Docker】00

2025-07-29 15:08:24
【Docker】00 三、Docker常用命令1、帮助命令代码语言:javascript代码运行次数:0运行复制# docker版本信息 docker version # docker系统信息 docker info # docker 帮助命令 docker --help # docker 特定帮助命令 docker [命令] --helpdocker命令官方文档:Reference d

【Docker】00

三、Docker常用命令

1、帮助命令

代码语言:javascript代码运行次数:0运行复制
# docker版本信息
docker version

# docker系统信息
docker info

# docker 帮助命令
docker --help

# docker 特定帮助命令
docker [命令]  --help

docker命令官方文档:

Reference documentation | Docker Documentation

2、镜像命令

查看本地主机上的所有镜像:
代码语言:javascript代码运行次数:0运行复制
# 查看本地主机上的所有镜像
docker images

# 可选项
Usage:  docker images [OPTIOS] [REPOSITORY[:TAG]]
Opti:
  -a, --all             显示所有镜像(默认隐藏中间的镜像)
      --digests         显示摘要
  -f, --filter filter   根据提供的条件过滤输出
      --format string   使用一个Go模板漂亮地打印镜像
      --no-trunc        不截断输出
  -q, --quiet           仅显示镜像的id


# 结果
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    d1165f22124   2 weeks ago   1.kB

# 解释
# REPOSITORY 镜像的仓库源
# TAG 镜像的标签
# IMAGE ID 镜像的id
# CREATED 镜像的创建时间
# SIZE 镜像的大小
搜索镜像:
代码语言:javascript代码运行次数:0运行复制
# 搜索镜像
docker search

# 可选项
Usage:  docker search [OPTIOS] TERM
Opti:
  -f, --filter filter   根据提供的条件过滤输出
      --format string   使用一个Go模板漂亮地打印搜索
      --limit int       最大搜索结果数(默认为25)
      --no-trunc        不截断输出

# 举个例子
--filter=STARTS=000 # 搜索镜像的stars大于等于000的

# 举例:搜索星星大于000的mysql
# 命令
docker search mysql --filter=STARS=000

# 结果
AME      DESCRIPTIO                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   10665     [OK]       
mariadb   MariaDB Server is a high performing open sou…   997      [OK]   
下载镜像:
代码语言:javascript代码运行次数:0运行复制
# 下载镜像
docker pull

# 可选项
Usage:  docker pull [OPTIOS] AME[:TAG|@DIGEST]
Opti:
  -a, --all-tags                下载仓库中所有已标记的镜像
      --disable-content-trust   跳过镜像验证(默认为true)
      --platform string         如果服务器支持多平台,则设置平台
  -q, --quiet                   抑制详细输出

# 下载MySQL
docker pull mysql

# 控制台打印日志分析
Using default tag: latest # 如果不写tag,默认下载latest
latest: Pulling from library/mysql 
a076a628af6f: Pull complete # 分层下载,docker镜像的核心 联合文件系统
f6c208ff991: Pull complete 
88a9455a9165: Pull complete 
406c9b8427c6: Pull complete 
7c88599c0b25: Pull complete 
25b5c6debdaf: Pull complete 
4a5816f1617: Pull complete 
1a8c919e89bf: Pull complete 
9fcf4bd1a07: Pull complete 
8059cea118d: Pull complete 
201bcad54ce: Pull complete 
944ba7e1c06: Pull complete 
Digest: sha256:feada149cb8ff54eade16da7c1d080c4a1c7ed82b5e20efb5beebed85ae8c # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址

# docker pull mysql 等价于 docker pull docker.io/library/mysql:latest

# 指定版本下载
docker pull mysql:5.7

# 控制台打印日志分析
5.7: Pulling from library/mysql
a076a628af6f: Already exists # 已经存在,可以共用,这就是分层下载的好处
f6c208ff991: Already exists 
88a9455a9165: Already exists 
406c9b8427c6: Already exists 
7c88599c0b25: Already exists 
25b5c6debdaf: Already exists 
4a5816f1617: Already exists 
181ac1245f4: Pull complete # 只下载不一样的部分
7677b8c1f79: Pull complete 
27e4acb0f6e: Pull complete 
7227baa8c445: Pull complete 
Digest: sha256:bd1eff02f698cd4695c9506171f0d08a8f92a0c806c1a4d9db9a55808df
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
删除镜像:
代码语言:javascript代码运行次数:0运行复制
# 删除指定id的镜像
docker rmi -f 镜像id

# 可选项
Usage:  docker rmi [OPTIOS] IMAGE [IMAGE...]
Opti:
  -f, --force      强制移除图像
      --no-prune   不删除未标记的父母

# 删除指定的多个镜像
docker rmi -f 镜像id1 镜像id2 镜像id……

# 删除所有镜像
docker rmi -f $(docker images -aq)

、容器命令

前提:我们有了镜像才能创建容器;

代码语言:javascript代码运行次数:0运行复制
# 使用docker下载centos
docker pull centos
新建容器并启动:
代码语言:javascript代码运行次数:0运行复制
# 新建容器并启动
docker run [可选参数] image

# 参数说明
--name="ame" 容器名字,比如tomcat01、tomcat02用来区分容器
-d 后台运行方式,我们以前使用nohup
-it 使用交互方式运行,进入容器查看内容
-P 指定容器的端口 -p 8080:8080 (大有门道)
	-P ip:主机端口:容器端口
	-P 主机端口:容器端口(常用)
	-P 容器端口
-p 随机指定端口

# 测试
docker run -it centos /bin/bash

# 控制台日志
[root@zibo /]# docker run -it centos /bin/bash
[root@f907a40028da /]# 看到了吧,主机名zibo变成了f907a40028da

# ls命令执行结果
[root@f907a40028da /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 看到了吧,看懂了吧,这就是一个小型服务器!

# 退出容器
[root@f907a40028da /]# exit
exit # 容器停止运行
[root@zibo /]# 

补充:centos7系统可以直接通过命令hostnamectl set-hostname 主机名进行修改,修改完毕后重新登录 shell 就可以了

列出正在运行的容器:
代码语言:javascript代码运行次数:0运行复制
# 列出正在运行的容器
docker ps

# 列出运行过的所有容器(正在运行的 + 历史运行过的)
docker ps -a

# 可选参数
-n=? # 显示最近创建的?个容器
-aq  # 列出运行过的所有容器的编号
退出容器:
代码语言:javascript代码运行次数:0运行复制
# 退出容器
[root@f907a40028da /]# exit
exit # 容器停止运行,并退出
[root@zibo /]# 

# 退出不停止运行
按键:Ctrl + P + Q
删除容器:
代码语言:javascript代码运行次数:0运行复制
# 删除容器(不能删除正在运行的容器)
docker rm 容器id

# 删除所有容器(可以删除正在运行的容器,强制删除)
docker rm -f $(docker ps -aq)

# 删除所有容器
docker ps -a -q|xargs docker rm

4、常用的其他命令

后台启动容器:
代码语言:javascript代码运行次数:0运行复制
# 后台启动容器
docker run -d 容器id

# 问题:使用docker ps 查看正在运行的容器,发现没有这个容器
# 坑:docker使用后台运行就必须有一个前台程序,否则会自动停止
# 比如nginx,启动容器后发现自己没有提供服务,就会立刻停止
查看日志:
代码语言:javascript代码运行次数:0运行复制
# 查看日志
docker logs [可选项]

# 可选项
Usage:  docker logs [OPTIOS] COTAIER
Opti:
      --details        显示提供给日志的额外详细信息
  -f, --follow         跟踪日志输出
      --since string   显示日志自时间戳(例如:201-01-02T1:2:7Z)或相对(如42分秒)
  -n, --tail string    从日志的末尾开始显示的行数(默认为“all”)
  -t, --timestamps     显示时间戳
      --until string   显示时间戳之前的日志(例如201-01-02T1:2:7Z)或相对的日志(例如42m for 42 minutes)

# 举例
docker logs -tf 容器id
docker logs -tf --tail 行数 容器id
查看容器中的进程信息:
代码语言:javascript代码运行次数:0运行复制
# 查看容器中的进程信息
docker top 容器id
查看镜像的元数据:
代码语言:javascript代码运行次数:0运行复制
# 查看镜像的元数据
docker inspect 容器id
进入当前正在运行的容器:
代码语言:javascript代码运行次数:0运行复制
# 进入当前正在运行的容器
# 通常,我们容器都是后台运行的,需要进入容器修改一些配置
# 方式一
docker exec -it 容器id /bin/bash

# 方式二
docker attach 容器id

# docker exec:进入容器后开启一个新的终端,可以进行操作
# docker attach:进入容器后进入正在运行的终端(可以看到运行日志)
从容器内拷贝文件到主机:
代码语言:javascript代码运行次数:0运行复制
# 从容器内拷贝文件到主机
docker cp 容器id:容器类路径 目标主机路径

# 测试
[root@zibo ~]# docker run -it centos /bin/bash
[root@7ede2a1ae96 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@7ede2a1ae96 /]# touch test.java # 创建test.java文件
[root@7ede2a1ae96 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  test.java  tmp  usr  var
[root@7ede2a1ae96 /]# exit
exit
[root@zibo ~]# docker ps -a
COTAIER ID   IMAGE         COMMAD       CREATED          STATUS                      PORTS     AMES
7ede2a1ae96   centos        "/bin/bash"    seconds ago   Exited (0) 6 seconds ago              festive_neumann
da424985956e   centos        "/bin/bash"   47 seconds ago   Exited (0) 6 seconds ago             quizzical_chatelet
4988fb9c57a   centos        "/bin/basj"   50 seconds ago   Created                               musing_driscoll
a908b4d8dc9f   centos        "/bin/bash"   9 minutes ago    Exited (0) 7 minutes ago              nifty_bartik
eeea7f8d57c0   centos        "/bin/bash"   10 minutes ago   Exited (0) 10 minutes ago             frosty_goldwasser
f907a40028da   centos        "/bin/bash"   11 hours ago     Exited (0) 11 hours ago               determined_panini
dce8b041667   hello-world   "/hello"      5 hours ago     Exited (0) 5 hours ago               magical_almeida
e0dff1522cfc   hello-world   "/hello"      5 hours ago     Exited (0) 5 hours ago               unruffled_lehmann
[root@zibo ~]# cd /home
[root@zibo home]# ls
www # 本来没有test.java
[root@zibo home]# docker cp 7ede2a1ae96:test.java /home
[root@zibo home]# ls
test.java  www # 可以看到test.java成功从容器里面拷贝过来了

# 这个拷贝是一个手动的过程,未来我们使用 -v 卷的技术,可以实现两个文件夹文件的自动同步
参考文章:

docker常用命令:Docker 常用命令-布布扣-bubuko

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022-06-16,如有侵权请联系 cloudcommunity@tencent 删除容器镜像日志搜索主机

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1199496.html

相关标签:无
上传时间: 2025-07-23 15:43:16

上一篇:【Docker】004.1

下一篇:【Docker】002

留言与评论(共有 5 条评论)
本站网友 蒽醌
12分钟前 发表
5.7删除镜像:代码语言:javascript代码运行次数:0运行复制# 删除指定id的镜像 docker rmi -f 镜像id # 可选项 Usage
本站网友 wraps
26分钟前 发表
可以共用
本站网友 韦亚平
18分钟前 发表
TAG|@DIGEST] Opti
本站网友 京沪高铁开通时间
14分钟前 发表
启动容器后发现自己没有提供服务