当前位置: 首页 > news >正文

Docker容器的基础命令操作大全(入门必看)

本指南将带您深入了解Docker的基本操作,包括镜像的管理、容器的创建与删除,以及如何高效地使用Docker进行开发和部署。通过这些内容,您将掌握Docker的核心概念,为未来的项目奠定坚实的基础。让我们一起开启这段探索之旅,发现Docker带来的无限可能!

1.搜索镜像a

 docker search httpd  

2.获取镜像

命令格式:

docker pull 仓库名称[标签]

下载镜像httpd

docker pull httpd

实例:

[root@localhost ~]# docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
e4fff0779e6d: Already exists 
1d0292c3dcd2: Already exists 
4f4fb700ef54: Already exists 
1316399d8fbf: Already exists 
b4cc6570db82: Already exists 
fd1a778092db: Already exists 
Digest: sha256:3f71777bcfac3df3aff5888a2d78c4104501516300b2e7ecb91ce8de2e3debc7
Status: Downloaded newer image for httpd:latest

3.查看已下载镜像

命令格式

docker images 仓库名称:[标签]

实例:

[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    a49fd2c04c02   4 weeks ago   148MB
nginx        latest    900dca2a61f5   7 weeks ago   188MB

单独查看某个镜像

docker images httpd:latestREPOSITORY   TAG              CREATED       SIZE
httpd        latest    a49fd2c04c02   4 weeks ago   148MB
查看镜像详情

docker inspect a49fd2c04c02(IMAGE ID号)

镜像的详细信息中包括创建时间、系统版本、主机名、域名、用户、卷、标签、操作系统,设备 ID等各种信息。

3.修改标签

可以用 dockertag 命令来为本地的镜像添加新的标签

语法格式

docker tag httpd:旧标签 httpd:新标签

实例:

[root@localhost ~]# docker tag httpd:latest httpd:mytag
[root@localhost ~]# docker images httpd:latest
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    a49fd2c04c02   4 weeks ago   148MB
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    a49fd2c04c02   4 weeks ago   148MB
httpd        mytag     a49fd2c04c02   4 weeks ago   148MB
nginx        latest    900dca2a61f5   7 weeks ago   188MBhttpd:latest 是原始标签。
httpd:mytag 是你新添加的标签。

这两个标签都指向同一个镜像 ID,因此它们共享相同的内容和大小。

你可以使用这两个标签来运行相同的镜像。

docker run httpd:latest
docker run httpd:mytag

4.删除镜像(两种)

使用docker rmi命令删除镜像

镜像ID删除

你可以使用镜像的 ID 来删除镜像。例如:

docker rmi a49fd2c04c02

需要注意的是:

如果镜像被多个标签引用

强制删除镜像

如果你确定要删除该镜像,可以使用 -f选项强制删除:

docker rmi -f a49fd2c04c02

也可以删除标签,然后在通过镜像ID删除

标签删除

你也可以使用镜像的名称和标签来删除镜像。例如:

docker rmi httpd:latest
docker rmi httpd:mytag
注意事项

当一个镜像有多个标签的时候,docker rmi 命令只是删除该镜像多个标签中的指定标签,不会影响镜像文件,相当于只是删除了镜像的一个标签而已。

!!! 如果镜像正在被容器使用,你可能需要先停止并删除相关的容器,才能成功删除镜像。

docker ps -a

5.存出镜像

语法格式

docker save -o <保存的文件名>.tar <镜像名>:<标签>

实例如下:

存出镜像/dmk

使用 docker save 命令将镜像保存为一个 tar 文件

[root@localhost ~]# docker save -o httpd.tar httpd:mytag
[root@localhost ~]# ll
总用量 148616
-rw-------. 1 root root 152180736 8月  15 14:56 httpd.tar//这条命令会将 httpd:latest 镜像保存为名为 myimage.tar 的文件。

6.载入镜像

语法格式

使用 docker load 命令从 tar 文件中加载镜像:

docker load -i <文件名>.tar

实例:

首先需要删除镜像,然后进行恢复

例如,从 httpd.tar 文件中导入镜像,可以使用

docker load -i httpd.tar

查看是否成功

docker images

总结

导出镜像

docker save -o <文件名>.tar <镜像名>:<标签>

导入镜像

docker load -i <文件名>.tar

Docker容器操作

1.创建容器

[root@localhost ~]# docker create -it --name web01 -p 80:80 httpd:latest /bin/bash
a68edea9638730c70363e7a32d9b3a3b21e7938d39343abdd5a2d9a9babd8c39

参数解释docker create: 创建一个新容器,但不启动它。-it: 以交互模式运行容器,并分配一个伪终端。–name web01: 为容器指定名称为 web01。-p 80:80: 将主机的 80 端口映射到容器的 80 端口。httpd:latest: 使用 httpd 镜像的最新版本。/bin/bash: 指定容器启动时执行的命令。

2.启动容器

[root@localhost ~]# docker start web01  /或者ID
web01
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS                               NAMES
a68edea96387   httpd:latest   "/bin/bash"   3 minutes ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web0

关闭容器

docker stop web01 /或者ID

3.创建并开启

docker run -d --name nginx-do -p 80:80 nginx

-d:在后台运行容器(分离模式)。–name nginx-do:为容器指定一个名称(可选)。-p 80:80:将主机的 80 端口映射到容器的 80 端口。

4.容器的进入

  • 进入容器

要进入正在运行的容器,您可以使用 docker exec 命令。

基本语法如下:

docker exec -it <容器名称或ID> /bin/bash

实例

假设您有一个名为 nginx 的容器,可以通过以下命令进入

docker exec -it nginx-do /bin/bash
root@2ee5e3023732:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

5.导出容器

要导出一个容器的文件系统,可以使用 docker export 命令。此命令将容器的文件系统导出为一个 tar 文件。

示例

假设您要导出名为 nginx-do的容器

[root@localhost ~]# docker export nginx-do > nginx-do.tar
[root@localhost ~]# ls
httpd.tar  nginx-do.tar

这将创建一个名为 nginx-do.tar 的文件,包含容器的文件系统。

6.导入容器

要从一个 tar 文件导入容器,可以使用 docker import 命令。此命令将 tar 文件导入为一个新的镜像。

示例

假设您要从 nginx-do.tar 文件导入一个新的镜像:

cat nginx-do.tar | docker import - nginx:latest

这将创建一个名为 nginx:latest的新镜像。

7.容器的删除

在 Docker 中,删除容器可以通过 docker rm 命令进行。

  • 查看当前容器

首先,您可以查看当前所有容器(包括运行中的和已停止的):

docker ps -a
  • 删除已停止的容器

要删除一个已停止的容器,可以使用以下命令:

docker rm <容器名称或ID>

示例如果您要删除名为 nginx-do 的容器:

docker rm nginx-do
  • 强制删除正在运行的容器

如果您需要删除一个正在运行的容器,可以使用 -f(或 --force)选项强制删除:

docker rm -f <容器名称或ID>

示例强制删除正在运行的 nginx-do 容器:

docker rm -f nginx-do
  • 删除多个容器您也可以一次性删除多个容器,只需在命令中列出容器名称或 ID:
docker rm <容器1> <容器2> ...

示例

docker rm nginx-do nginx-other
  • 删除所有已停止的容器
  • 如果您想要删除所有已停止的容器,可以使用以下命令:
docker container prune
  • 这将提示您确认是否要删除所有已停止的容器。

注意事项

确保您不再需要容器中的数据,因为删除容器后,容器的文件系统及其数据将永久丢失。如果容器是基于某个镜像创建的,删除容器不会影响该镜像

总结

Docker是一种强大的容器化技术,极大地简化了应用程序的开发、测试和部署流程。通过使用Docker,开发者可以轻松地创建、管理和共享容器化应用,确保在不同环境中的一致性。

成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

“每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。”

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 试商法除法器
  • 大和解!淘宝微信11年“屏蔽战”终落幕
  • NC 二进制中1的个数
  • 如何在Android 12 aosp系统源码中添加三指下滑截图功能
  • 流程图符号速查:快速掌握流程图绘制要点
  • 每天五分钟玩转深度学习PyTorch:获取神经网络模型的子网络模型
  • HarmonyOs 应用基础--ArkTS-核心-基础
  • css之雪碧图(精灵图)
  • [数据集][目标检测]西红柿缺陷检测数据集VOC+YOLO格式17318张3类别
  • VisualStudio环境搭建C++
  • 业务系统如何接入文心一言AI模型
  • 第一个搭建SpringBoot项目(连接mysql)
  • layui监听table表单的多选框
  • 2414. Length of the Longest Alphabetical Continuous Substring
  • k8s集群部署:安装 kubeadm
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • Android Studio:GIT提交项目到远程仓库
  • exif信息对照
  • HTTP那些事
  • PhantomJS 安装
  • Promise初体验
  • React 快速上手 - 07 前端路由 react-router
  • Spark RDD学习: aggregate函数
  • v-if和v-for连用出现的问题
  • vue总结
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 多线程 start 和 run 方法到底有什么区别?
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 驱动程序原理
  • 使用 Docker 部署 Spring Boot项目
  • 与 ConTeXt MkIV 官方文档的接驳
  • ​用户画像从0到100的构建思路
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #1014 : Trie树
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (4)STL算法之比较
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (BFS)hdoj2377-Bus Pass
  • (day 12)JavaScript学习笔记(数组3)
  • (阿里云万网)-域名注册购买实名流程
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .axf 转化 .bin文件 的方法
  • .NET CLR基本术语
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .Net的DataSet直接与SQL2005交互
  • /var/lib/dpkg/lock 锁定问题
  • @ConditionalOnProperty注解使用说明
  • [AI Google] 使用 Gemini 取得更多成就:试用 1.5 Pro 和更多智能功能
  • [Android] 240204批量生成联系人,短信,通话记录的APK