【linlong】Docker第二篇-常用命令(docker启动关闭、镜像拉取、容器创建启动关闭删除等常用指令)

2023-05-16

目录

2. Docker常用命令

2.1 帮助命令

2.2 镜像命令

2.3 搜索镜像

2.4 拉取镜像

2.5 删除镜像 

2.6 容器命令

2.6.1 创建容器并启动 

2.6.2 退出容器

2.6.3 启动容器

2.6.4 停止容器

2.6.5 删除容器

2.6.6 查看所有运行容器

2.7 其他常用命令 

2.7.1 后台启动容器

2.7.2 查看日志

2.7.3 查看容器/镜像的元数据

2.7.4 进入正在运行的容器

2.7.5 从容器内拷贝文件到主机上


2. Docker常用命令

2.1 帮助命令

docker version # 显示Docker版本信息

docker info # 显示Docker系统信息,包括镜像和容器数

docker --help # 帮助

2.2 镜像命令

docker images			# 查看所有本地主机上的镜像

解释:

REPOSITORY # 镜像的仓库源

TAG # 镜像的标签

IMAGE ID # 镜像的ID

CREATED # 镜像创建时间

SIZE # 镜像大小

同一个仓库源可以有多个TAG,代表这个仓库源的不同版本,我们使用REPOSITORY:TAG定义不同的镜像,如果不定义镜像的标签版本,docker将默认使用lastest镜像(最新的)。

可选项:

-a: # 列出本地所有镜像,--all

-q: # 只显示镜像id,--quiet

--digests: # 显示镜像的摘要信息

示例:

docker images	 -a			# 显示所有镜像
docker images	 -q			# 显示所有镜像的id
docker images	 -aq		# 显示所有的镜像

2.3 搜索镜像

docker search 		# 搜索镜像

# 通过 docker search 某个镜像的名称 来搜索对应Docker Hub仓库中的镜像,但有时候我们不知道仓库中的镜像名字,比如Tomcat。

# 可先上docker仓库镜像:Docker Hubhttps://hub.docker.com/ 上进行搜索要下载的资源,再进行拉取操作。

 

点击tomcat项后,进入详细页面: 

点击“Tags”进入标签页,这里有很多版本,我们选择Tomcat 9.0.46,JDK8的版本进行拉取:

# 可选项,通过搜索来过滤
--filter=stars=50		# 列出收藏数不小于50的镜像。

2.4 拉取镜像

docker pull 镜像名:镜像版本号

docker pull tomcat:9.0.46-jdk8-corretto

注1:tomcat是要拉取的镜像名,9.0是镜像的TAG。如不指定TAG默认拉取最新版本。 

 注2:拉取镜像时会进行分层下载,分层的好处是:可以提高镜像的重用率。

# 拉取MySQL
docker pull mysql		# 不写tag,默认是latest最新版本

# 拉取指定版本下载

docker pull mysql:5.7   # 删除mysql标签为5.7的镜像

 查看下载之后的镜像:

docker images

2.5 删除镜像 

docker rmi 
# 示例
docker rmi –f 6654503f1940   # 删除单个镜像
docker rmi –f tomcat:9.0 mysql:5.7	# 删除多个,空格分开
docker rmi -f $(docker images -qa)	# 删除全部

# 先查看镜像

docker images

# 再删除镜像

docker rmi -f 9a8c9549861e

2.6 容器命令

说明: 有镜像才能创建容器,我们这里使用CentOS的镜像来测试,就是虚拟一个CentOS。

docker pull centos		# 下载centos镜像,初次下载有点慢

# 查看当前Linux版本号信息:cat /etc/redhat-release

 # https://hub.docker.com/上搜索centos镜像文件

 

2.6.1 创建容器并启动 

docker run [可选参数] IMAGE [COMMAND][ARG...] 

注:如果没有拉取镜像,创建容器并启动会自动拉取镜像,再创建容器。

常用参数说明:

--name="Name" # 给容器指定一个名字

-d # 后台方式运行容器,并返回容器的id!

-i # 以交互模式运行容器,通过和 -t 一起使用

-t # 给容器重新分配一个终端,通常和 -i 一起使用

-P # 随机端口映射(大写)

-p # 指定端口映射(小结),一般可以有四种写法

ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort (常用)

containerPort

(1)创建交互型容器

运行在前台,容器中使用exit命令或者调用docker stop、docker kill命令停止容器。

docker run –it -–name=docker_run centos /bin/bash

i:打开容器的标准输入

t:告诉docker为容器建立一个命令行终端

name:指定容器名称,可以不填(随机),建议根据具体使用功能命名,便于管理

centos:告诉我们使用什么镜像来启动容器

/bin/bash:告诉docker要在容器里面执行此命令

# 创建tomcat01容器

docker run -it --name=tomcat01 tomcat /bin/bash

(2)创建后台型容器

运行在后台,创建后与终端无关,只有调用docker stop、docker kill命令才能使容器停止。

docker run –d –-name=docker_run_b centos /bin/bash

d:使用-d参数,使容器在后台运行

# 使用centos进行用交互模式启动容器,在容器内执行/bin/bash命令。

# 创建容器,启动并进入容器。注意:指定TAG,否则又会去下载最新版本

docker run -it centos:centos7.9.2009 /bin/bash 

# 注意地址,已经切换到容器内部了,使用ls查看下容器内部文档结构

ls

注意:这里发现,容器内部和容器外面linux目录一样,这就是我们下的centos镜像,它就是一个小型的服务器。(容器内就是一个小的服务器) 

2.6.2 退出容器

exit  # 容器停止退出回到主机

 注意:这里不能光通过颜色来区分是在镜像内还是镜像外,因为工具不一样,显示的结果也不一样。  ctrl+P +Q # 容器不停止,退出回到主机

注意:按住ctrl和P再按Q

通过查看当前运行的容器:

问:当前正在运行的容器如何进去?

进入容器:docker attach 容器ID  或  docker exec -it 容器ID /bin/bash 

docker attach e3ba7185be17 # 有时会卡住

docker exec -it e3ba7185be17 /bin/bash # 推荐使用

2.6.3 启动容器

docker start 容器id或容器名 		# 启动之前已停止的容器

# 示例

docker start docker_run # 按容器名启动

docker start 43e3fef2266c # 按容器ID启动

docker restart 容器id容器名 # 自动重启容器

默认情况下容器是不重启的,-restart标志会检查容器的退出码来决定容器是否重启。

# 示例

docker restart docker_run # 按容器名自动重启

docker restart 43e3fef2266c # 按容器ID自动重启

docker run –d –restart=always -–name=docker_restart centos /bin/bash

2.6.4 停止容器

docker stop容器id容器名  # 停止当前正在运行的容器

# 示例

docker stop docker_run # 停止容器(按容器名)

docker stop 43e3fef2266c # 停止容器(按容器ID)

 docker kill 容器id容器名  # 强制停止容器

# 示例

docker kill docker_run

docker kill 43e3fef2266c

2.6.5 删除容器

容器终止后,在需要的时候可以重新启动,确定不需要了,可以进行删除操作。

docker rm容器id或容器名
# 示例
docker rm docker_run
docker rm 43e3fef2266c
docker rm -f $(docker ps -a -q) 		# 删除所有容器 
docker ps -a -q|xargs docker rm 		# 删除所有容器

 注意:不能够删除一个正在运行的容器,会报错。需要先停止容器,再删除。

翻译:来自守护进程的错误响应:您不能删除一个正在运行的容器9b5ef816ed04dcbf2e4d336460143343496ee47a8fa979497d121a8b7d165df6。停止集装箱前试图移除或强行移除

一次性删除:docker本身没有提供一次性删除操作,但是可以使用如下命令实现:

 docker rm ‘docker ps –a –q’

-a:标志列出所有容器

-q:标志只列出容器的ID,然后传递给rm命令,依次删除容器。

2.6.6 查看所有运行容器

docker ps [OPTIONS]

# 常用参数说明

-a # 列出当前所有正在运行的容器 + 历史运行过的容器

-l # 显示最近创建的容器

-n=? # 显示最近n个创建的容器,如:docker ps -a -n=1

-q # 静默模式,只显示容器编号。

# 示例:列出当前正在运行的容器

docker ps -a

 

2.7 其他常用命令 

2.7.1 后台启动容器

docker run -d 容器名

# 示例

docker run -d centos:centos7.9.2009 # 启动centos,使用后台方式启动

问题:使用docker ps 查看,发现容器已经退出了!

解释:Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令,就会自动退出。

比如,你运行了nginx服务,但是docker前台没有运行应用,这种情况下,容器启动后,会立即自杀,因为他觉得没有程序了,所以最好的情况是,将你的应用使用前台进程的方式运行启动。

2.7.2 查看日志

docker logs -f -t --tail 容器id

# 例子:我们启动 centos,并编写一段脚本来测试玩玩!最后查看日志

# 自己编写一段shell脚本

docker run -d centos /bin/sh -c "while true;do echo kuangshen;sleep 1;done"

docker ps

# 显示日志

# -t 显示时间戳

# -f 打印最新的日志

# --tail 数字 显示多少条!

docker logs -tf --tail 10 c8530dbbe3b4

2.7.3 查看容器/镜像的元数据

docker inspect 容器id

# 测试

docker inspect c8530dbbe3b4 

2.7.4 进入正在运行的容器

docker exec -it 容器id bashShell 

# -it表示交互方式

docker exec -it mymongo /bin/bash

docker attach 容器id

# 示例

docker attach mymong

区别:

  1. exec 进入容器后开启一个新的终端,可以在里面操作,并且可以启动新的进程
  2. attach 进入容器下在执行的终端,不会启动新的进程

2.7.5 从容器内拷贝文件到主机上

docker cp 容器id:容器内路径 目的主机路径

# 测试

docker cp c8530dbbe3b4:/home/f1 /home 

小结:

         接到上期docker说到,这期发送的是docker的常用指令,包括查看docker状态、启动、关闭docker、镜像拉取、容器启动等等,希望小编的这编文章能帮助到大家更好的掌握docker常用指令。谢谢大家的观看!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【linlong】Docker第二篇-常用命令(docker启动关闭、镜像拉取、容器创建启动关闭删除等常用指令) 的相关文章

  • Docker的常用命令

    一 Docker中几个重要的概念 镜像 和容器 是docker中两个非常重要的 概念 镜像 xff08 Image xff09 xff1a Docker 将应用程序及其所需的依赖 函数库 环境 配置等文件打包在一起 xff0c 称为镜像 容
  • Linux-C语言编写-UDP服务器客户端通信流程简介(代码)

    目录 一 xff0c 服务器 1 创建数据报套接字 2 填充结构体 3 绑定服务器的ip和端口 4 接收来自客户端的消息 recvfrom 5 关闭套接字 6 详细代码 二 xff0c 客户端 1 创建数据报套接字 2 填充结构体 xff0
  • C++三阶贝塞尔曲线

    文章目录 1 贝塞尔曲线2 示意图3 c 43 43 代码实现 1 贝塞尔曲线 贝塞尔曲线阶数等于控制点个数n 1将控制点首尾相连并且取每段连线上一点P xff0c 再将每个线段上的P点连接设第一个控制点为P1 xff0c 第二个为P2 x
  • Ubuntu 图达通激光雷达可视化/获取点云

    文章目录 0 ILA 平台网页预览1 Ubuntu的安装2 安装Ubuntu对应版本ros3 激光雷达接线4 解压SDK文件5 启动ros可视化点云6 录制点云7 播放录制文件8 rosbag文件 gt pcd文件 0 ILA 平台网页预览
  • Python的while循环

    目录 一 计数器 二 while循环使用 三 不同循环的使用环境判断 xff1a 四 while循环使用break和continue 五 while的嵌套使用 一 计数器 计数器 xff0c 是一个叫法 xff0c 代表的是一个功能 用于记
  • 字符串结束符

    在C语言中 xff0c 存储一个字符串通常用一个char 数组 在C语言中 xff0c 为了方便存储 xff0c 要求在最后一个字符的后面存储一个0 xff08 一个字节 xff09 这个0称为 字符串结束符 xff0c 常用 0 表示 在
  • 一起自学SLAM算法:1.1 ROS简介

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.2 ROS开发环境搭建

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 戴尔电脑恢复系统后,D盘被加密Bitlocker,要求输入48位密钥,才能打开D盘---解决过程

    一 前言 今天DELL电脑恢复系统后 xff0c D盘被加密 xff08 D盘图标上有一把黄色的锁 xff09 xff0c 鼠标双击准备打开D盘 xff0c 提示了一个密钥ID xff0c 让输入48位码解密 xff0c 被microsof
  • 一起自学SLAM算法:1.4 ROS调试工具

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.5 ROS节点通信

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:3.4 图像特征点提取

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 3 1 认识图像数据 3 2 图像滤波 3 3 图像变换 3 4 图像特
  • 一起自学SLAM算法:第4章-机器人传感器

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 4 1 惯性测量单元 4 2 激光雷达 4 3 相
  • 一起自学SLAM算法:5.4 ARM主机Jetson-tx2

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 5 1 X86与ARM主机对比
  • 一起自学SLAM算法:6.1 底盘运动学模型

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 6 1 底
  • 一起自学SLAM算法:7.5 基于因子图的状态估计

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:10.2 VINS算法

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:12.3 autoware导航系统

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:13.1 运行机器人上的传感器

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • UBLOX配置/GPS配置设置/u-center使用

    对u blox的GPS接收机设置可以查看文档 xff0c 文档比较长 xff0c 刚开始看完全没有头绪 xff0c 可以使用u center对b blox进行设置 本文先描述使用u center的设置方法 xff0c 随后补充一些配置报文的

随机推荐