Docker的基本命令
都依凡
撰写于 2023年 05月 27 日

Docker的基本命令

1. 帮助启动相关

命令功能命令行代码
启动dockersystemctl start docker
停止dockersystemctl stop docker
重启dockersystemctl restart docker
查看docker状态systemctl status docker
开机启动dockersystemctl enable docker
查看docker概要信息docker info
查看docker总体帮助文档docker --help
查看docker命令帮助文档docker save --help (查看save命令的帮助文档)

2. 镜像相关命令

1. docker images 查看本地的镜像

154

其中

  • repository 表示镜像名称
  • Tag 表示镜像的版本标签 同一个镜像可以有多个标签
  • Image Id 表示镜像的ID
  • Created 表示创建时间
  • Size 表示文件大小
命令功能命令行代码
docker images -a列出本地所有的镜像
docker images -q只显示镜像的ID

2. docker search <某个镜像的名称> 搜索镜像

155

其中

  • Name 表示镜像的名称
  • Description 表示镜像的说明
  • stars 点赞的数量
  • Officaial 表示是否是官方的 若是官方的 下方有一个 表示
  • AutoMated 表示是否是自动构建的
命令功能命令行代码
分页查询镜像 查询N个docker search <镜像名称> --limit < n >

Docker 自动构建镜像和非自动构建镜像的主要区别在于构建方式和更新机制。

自动构建镜像是通过与代码托管平台(如 GitHub、GitLab、Bitbucket 等)集成,当代码仓库中的代码发生变化时,Docker Hub 会自动触发构建过程,生成新的镜像。自动构建镜像的好处是可以自动化构建和更新镜像,减少手动操作,提高效率。但是,由于构建过程是自动化的,可能会导致构建失败或者镜像质量不稳定的问题。

非自动构建镜像则需要手动构建和更新,通常是通过 Dockerfile 文件来定义构建过程。这种方式可以更加灵活地控制构建过程和镜像内容,但需要手动操作,相对较为繁琐。

总的来说,自动构建镜像适用于需要频繁更新的应用,非自动构建镜像适用于需要更加精细控制的应用。

3. docker pull <某个镜像的名称> 下载/拉去镜像

命令功能命令行代码
拉去某个镜像的最新版本 latestdocker pull < 镜像的名称 >
拉取某个镜像的指定版本(不要忘了冒号)docker pull <镜像的名称>:< tag ID >

### 4. docker system df 查看镜像/容器/数据卷占用的空间

156

5. docker rmi <某个镜像的名字> 删除镜像

命令功能命令行代码
强制删除镜像docker rmi -f <镜像的ID>
删除多个镜像docker rmi -f <镜像的ID>:<镜像ID>
删除全部镜像docker rmi -f ${docker images -qa}

其中删除全部中使用到的是Shell脚本的特性,支持了参数的续传,可以将docker images -qa查询到的所有的镜像的ID传输给docker rmi -f执行,即就可以删除全部

* Docker面试题:谈谈docker虚旋镜像是什么?

1. 虚旋镜像长什么样子?

157

在查询所有镜像仓库的时候可以看到的他 repositoryTAG< none >

## 3.容器相关的命令

1. 启动一个容器实例

命令功能命令行代码
启动一个容器,如启动一个nginx其中 -d表示后台运行这个容器,不占用前台的输入docker run --name < 自定义这个容器的名字 > -d <镜像名称>

如,要启动一个Nginx容器,并且取名为MyNginx,且让他后台运行,不占用前台命令行,就有如下命令行

docker run --name Mynginx -d nginx
## 
## 其中 --name 表示指定一个名称 后面是自定义的名称  
## -d 表示后台运行
## 最后是启动的这个镜像的名称

2. 查询当前正在运行的容器

命令功能命令行代码
查询当前正在运行的容器docker ps
查询罗列过的和运行过的所有容器docker ps -a
查询最近创建的容器docker ps -l
查询最近N个创建的容器docker ps -n <查询的数量>
查询正在运行的容器的IDdocker ps -q

其中

docker ps -q查询当前正在运行的容器的ID可以和其他命令参数进行组合使用,如我们要查询所有运行过的容器就可以有如下的代码

docker ps -aq

3. 退出当前容器

命令功能命令行代码
退出当前容器exit “使用这个命令退出容器会停止当前容器的运行”
退出当前容器ctrl + p + q "使用这个命令退出容器不会停止容器的运行"

4. 启动/停止/强制停止的容器

命令功能命令行代码
启动容器docker start <容器的ID>
停止容器docker stop <容器的ID>
强制停止容器docker kill <容器的ID>

5. 删除已经停止容器

在上面的例子中已经学到了删除镜像使用的命令是 docker rmi <镜像的ID>

在删除容器的时候,命令就是

docker rm <容器的ID>

# 强制删除容器 慎用 可以删除正在运行的容器 
dcker rm -f <容器的ID>

注意: 容器保护机制让docker 只可以删除已经停止的镜像

6. 查看容器启动的日志

命令功能命令行代码
查看容器日志docker logs <容器的ID>

4. 交互式启动

1. 什么是交互式启动?

交互式启动如字面意思,有交互的启动,具体理解起来可以有如下例子:

现在我们在docker 中创建了一个ubantu容器,因为Ubantu是Linux系统,这个Linux系统是有交互的,我们启动的时候可以使用如下命令docker run -it -name linux1 ubuntu 我们可以直接进入到这个系统中,并产生了一个交互式控制台输入,这个时候可以调用我们的linux命令进行操作这个容器,这就是交互

思考?

若我们退出的时候,应该如何再次进入,并产生交互控制台呢?

这个时候就使用到了交互式启动运行

命令功能命令代码
创建容器的时候并返回一个交互控制台docker run -it --name<自定义容器的名称> <要启动的镜像名称>
退出容器exit “如果是run -it启动时退出会关闭容器”
退出容器ctrl + p + q "使用这个命令退出容器不会停止容器的运行"
重新进入容器,并产生交互控制台(退出不会停止容器)docker exec -it <容器的ID> /bin/bash
重新进入重启,并产生控制台(退出会停止容器)docker attach <容器的ID> /bin/bash

Docker的基本命令

Docker的基本命令

1. 帮助启动相关

命令功能命令行代码
启动dockersystemctl start docker
停止dockersystemctl stop docker
重启dockersystemctl restart docker
查看docker状态systemctl status docker
开机启动dockersystemctl enable docker
查看docker概要信息docker info
查看docker总体帮助文档docker --help
查看docker命令帮助文档docker save --help (查看save命令的帮助文档)

2. 镜像相关命令

1. docker images 查看本地的镜像

154

其中

  • repository 表示镜像名称
  • Tag 表示镜像的版本标签 同一个镜像可以有多个标签
  • Image Id 表示镜像的ID
  • Created 表示创建时间
  • Size 表示文件大小
命令功能命令行代码
docker images -a列出本地所有的镜像
docker images -q只显示镜像的ID

2. docker search <某个镜像的名称> 搜索镜像

155

其中

  • Name 表示镜像的名称
  • Description 表示镜像的说明
  • stars 点赞的数量
  • Officaial 表示是否是官方的 若是官方的 下方有一个 表示
  • AutoMated 表示是否是自动构建的
命令功能命令行代码
分页查询镜像 查询N个docker search <镜像名称> --limit < n >

Docker 自动构建镜像和非自动构建镜像的主要区别在于构建方式和更新机制。

自动构建镜像是通过与代码托管平台(如 GitHub、GitLab、Bitbucket 等)集成,当代码仓库中的代码发生变化时,Docker Hub 会自动触发构建过程,生成新的镜像。自动构建镜像的好处是可以自动化构建和更新镜像,减少手动操作,提高效率。但是,由于构建过程是自动化的,可能会导致构建失败或者镜像质量不稳定的问题。

非自动构建镜像则需要手动构建和更新,通常是通过 Dockerfile 文件来定义构建过程。这种方式可以更加灵活地控制构建过程和镜像内容,但需要手动操作,相对较为繁琐。

总的来说,自动构建镜像适用于需要频繁更新的应用,非自动构建镜像适用于需要更加精细控制的应用。

3. docker pull <某个镜像的名称> 下载/拉去镜像

命令功能命令行代码
拉去某个镜像的最新版本 latestdocker pull < 镜像的名称 >
拉取某个镜像的指定版本(不要忘了冒号)docker pull <镜像的名称>:< tag ID >

### 4. docker system df 查看镜像/容器/数据卷占用的空间

156

5. docker rmi <某个镜像的名字> 删除镜像

命令功能命令行代码
强制删除镜像docker rmi -f <镜像的ID>
删除多个镜像docker rmi -f <镜像的ID>:<镜像ID>
删除全部镜像docker rmi -f ${docker images -qa}

其中删除全部中使用到的是Shell脚本的特性,支持了参数的续传,可以将docker images -qa查询到的所有的镜像的ID传输给docker rmi -f执行,即就可以删除全部

* Docker面试题:谈谈docker虚旋镜像是什么?

1. 虚旋镜像长什么样子?

157

在查询所有镜像仓库的时候可以看到的他 repositoryTAG< none >

## 3.容器相关的命令

1. 启动一个容器实例

命令功能命令行代码
启动一个容器,如启动一个nginx其中 -d表示后台运行这个容器,不占用前台的输入docker run --name < 自定义这个容器的名字 > -d <镜像名称>

如,要启动一个Nginx容器,并且取名为MyNginx,且让他后台运行,不占用前台命令行,就有如下命令行

docker run --name Mynginx -d nginx
## 
## 其中 --name 表示指定一个名称 后面是自定义的名称  
## -d 表示后台运行
## 最后是启动的这个镜像的名称

2. 查询当前正在运行的容器

命令功能命令行代码
查询当前正在运行的容器docker ps
查询罗列过的和运行过的所有容器docker ps -a
查询最近创建的容器docker ps -l
查询最近N个创建的容器docker ps -n <查询的数量>
查询正在运行的容器的IDdocker ps -q

其中

docker ps -q查询当前正在运行的容器的ID可以和其他命令参数进行组合使用,如我们要查询所有运行过的容器就可以有如下的代码

docker ps -aq

3. 退出当前容器

命令功能命令行代码
退出当前容器exit “使用这个命令退出容器会停止当前容器的运行”
退出当前容器ctrl + p + q "使用这个命令退出容器不会停止容器的运行"

4. 启动/停止/强制停止的容器

命令功能命令行代码
启动容器docker start <容器的ID>
停止容器docker stop <容器的ID>
强制停止容器docker kill <容器的ID>

5. 删除已经停止容器

在上面的例子中已经学到了删除镜像使用的命令是 docker rmi <镜像的ID>

在删除容器的时候,命令就是

docker rm <容器的ID>

# 强制删除容器 慎用 可以删除正在运行的容器 
dcker rm -f <容器的ID>

注意: 容器保护机制让docker 只可以删除已经停止的镜像

6. 查看容器启动的日志

命令功能命令行代码
查看容器日志docker logs <容器的ID>

4. 交互式启动

1. 什么是交互式启动?

交互式启动如字面意思,有交互的启动,具体理解起来可以有如下例子:

现在我们在docker 中创建了一个ubantu容器,因为Ubantu是Linux系统,这个Linux系统是有交互的,我们启动的时候可以使用如下命令docker run -it -name linux1 ubuntu 我们可以直接进入到这个系统中,并产生了一个交互式控制台输入,这个时候可以调用我们的linux命令进行操作这个容器,这就是交互

思考?

若我们退出的时候,应该如何再次进入,并产生交互控制台呢?

这个时候就使用到了交互式启动运行

命令功能命令代码
创建容器的时候并返回一个交互控制台docker run -it --name<自定义容器的名称> <要启动的镜像名称>
退出容器exit “如果是run -it启动时退出会关闭容器”
退出容器ctrl + p + q "使用这个命令退出容器不会停止容器的运行"
重新进入容器,并产生交互控制台(退出不会停止容器)docker exec -it <容器的ID> /bin/bash
重新进入重启,并产生控制台(退出会停止容器)docker attach <容器的ID> /bin/bash

版权属于:都依凡 所有,采用《知识共享署名许可协议》进行许可,转载请注明文章来源。

本文链接: http://blog.anlucky.cn/index.php/programming/tools/153

赞 (1)

评论区(暂无评论)

啊哦,评论功能已关闭~