Docker-基础命令使用
文章目录
- 前言
- 命令帮助
- 命令执行示意图
- docker run
- docker ps
- docker inspect
- docker exec
- docker attach
- docker stop
- docker start
- docker top
- docker rm
- docker prune
- 参考说明
前言
本文主要介绍Docker基础命令的使用方法。
命令帮助
Docker命令获取帮助方法
# docker -h
Flag shorthand -h has been deprecated, please use --helpUsage: docker [OPTIONS] COMMAND 用法A self-sufficient runtime for containers 功能介绍Options: 选项--config string Location of client config files (default "/root/.docker")-c, --context string Name of the context to use to connect to the daemon (overridesDOCKER_HOST env var and default context set with "docker context use")-D, --debug Enable debug mode-H, --host list Daemon socket(s) to connect to-l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal")(default "info")
...
查看某个命令的帮助
# docker run --helpUsage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Create and run a new container from an image
Aliases:docker container run, docker runOptions:--add-host list Add a custom host-to-IP mapping (host:ip)--annotation map Add an annotation to the container (passed through to the OCI runtime) (default map[])
...
Docker官网提供的命令说明
网址链接:https://docs.docker.com/engine/reference/commandline/run/
命令执行示意图
docker run
命令解释
docker run 运行一个命令在容器中,命令是主体,没有命令容器就会消亡
-i 交互式
-t 提供终端
--name c1 把将运行的容器命名为c1
centos:latest 使用centos最新版本容器镜像
bash 在容器中执行的命令
# docker run -i -t --name c1 centos:latest bash
...下载并安装完镜像后,直接进入容器中的命令行
[root@948f234e22a1 /]#查看主机名
[root@948f234e22a1 /]# hostname
948f234e22a1查看网络信息
[root@948f234e22a1 /]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group defaultlink/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever查看进程
[root@948f234e22a1 /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 12036 2172 pts/0 Ss 09:58 0:00 bash
root 16 0.0 0.0 44652 1784 pts/0 R+ 10:02 0:00 ps aux查看用户
[root@948f234e22a1 /]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin查看当前目录
[root@948f234e22a1 /]# pwd
/查看根目录,每个容器拥有自己独立的文件系统
[root@948f234e22a1 /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr退出bash命令执行,观察容器运行情况
[root@948f234e22a1 /]# exit
exit
[root@localhost ~]#
docker ps
命令解释
docker ps 查看正在运行的容器,本案例由于没有命令在容器中运行,因此容器被停止了,所以本次查看没有结果。
docker ps --all 可以查看正在运行的和停止运行的容器
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES# docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
948f234e22a1 centos:latest "bash" 10 minutes ago Exited (0) 2 minutes ago c1
输出内容解释
CONTAINERID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
---|---|---|---|---|---|---|
容器ID | 容器镜像名 | 容器中运行的命令 | 创建时间 | 状态 | 端口 | 容器名称 |
9834c8c18a7c | nginx:latest | “/docker-entrypoint.…” | 24 seconds ago | Up 23 seconds | 80/tcp | condescending_pare |
docker inspect
命令解释
docker inpect 查看容器详细信息
操作说明
在上述提示符处按住ctrl键,再按p键与q键,可以退出交互式的容器,容器会处于运行状态。
# docker run -it --name c2 centos:latest bash
[root@9f2eea16da4c /]# # docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f2eea16da4c centos:latest "bash" 37 seconds ago Up 35 seconds c2# docker inspect c2"Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "d3de2fdbc30ee36a55c1431ef3ae4578392e552009f00b2019b4720735fe5a60","EndpointID": "d1a2b7609f2f73a6cac67229a4395eef293f695c0ac4fd6c9c9e6913c9c85c1c","Gateway": "172.17.0.1","IPAddress": "172.17.0.2","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:11:00:02","DriverOpts": null}}}}
]
docker exec
命令解释
docker exec 在容器外实现与容器交互执行某命令
-it 交互式
c2 正在运行的容器名称
ls /root 在正在运行的容器中运行相关的命令
让c2容器执行命令 ls /root
# docker exec -it c2 ls /root
anaconda-ks.cfg anaconda-post.log original-ks.cfg下面命令与上面命令执行效果一致
# docker exec c2 ls /root
anaconda-ks.cfg
anaconda-post.log
original-ks.cfg
docker attach
命令解释
docker attach 类似于ssh命令,可以进入到正在运行的容器中
c2 正在运行的容器名称,也可以使用容器id
如果进入的一个容器是无法交互的,则会卡住。
退出说明
docker attach 退出容器时,如不需要容器再运行,可直接使用exit退出;如需要容器继续运行,可使用ctrl+p+q
案例
查看正在运行的容器
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f2eea16da4c centos:latest "bash" 13 minutes ago Up 13 minutes c2进入c2容器内部
[root@localhost ~]# docker attach c2
[root@9f2eea16da4c /]#
docker stop
命令说明
停止一个正在运行的容器,可以通过docker ps -all查看到。
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f2eea16da4c centos:latest "bash" 22 minutes ago Up 22 minutes c2# docker stop 9f2eea16da4c
9f2eea16da4c# docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f2eea16da4c centos:latest "bash" 22 minutes ago Exited (137) 4 seconds ago c2
docker start
命令解释
启动一个或多个已经停止的容器。如果容器已经移除则无法启动
# docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f2eea16da4c centos:latest "bash" 22 minutes ago Exited (137) 4 seconds ago c2# docker start 9f2eea
9f2eea# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f2eea16da4c centos:latest "bash" 24 minutes ago Up 16 seconds c2
docker top
命令解释
在Docker Host查看容器中运行的进程信息
docker top 查看container内进程信息,指在docker host上查看,与docker exec -it c2 ps -ef不同。
# docker top c2
UID PID PPID C STIME TTY TIME CMD
root 69040 69020 0 18:37 pts/0 00:00:00 bash
返回结果说明
UID | PID | PPID | C | STIME | TTY | TIME | CMD |
---|---|---|---|---|---|---|---|
用户id | 容器中进程id | 容器id | cpu占用 | 启动时间 | 所在的终端 | 占用cpu总长 | 执行的命令 |
root | 69040 | 69020 | 0 | 18:37 | pts/0 | 00:00:00 | bash |
docker rm
命令解释
如果容器已停止,使用此命令可以直接删除;如果容器处于运行状态,则需要提前关闭容器后,再删除容器。
删除时可以使用容器名称或者id。
[root@dev-study ~]# docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
afce7660b05f nginx:latest "/docker-entrypoint.…" 2 hours ago Exited (0) 9 seconds ago eloquent_hodgkin
51bbe4e8ffd5 nginx:latest "/docker-entrypoint.…" 2 hours ago Up 2 hours 80/tcp frosty_hodgkin[root@dev-study ~]# docker remove 7660
Error response from daemon: No such container: 7660
[root@dev-study ~]# docker remove afce7660b05f
afce7660b05f
[root@dev-study ~]# docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51bbe4e8ffd5 nginx:latest "/docker-entrypoint.…" 3 hours ago Up 3 hours 80/tcp frosty_hodgkin
[root@dev-study ~]#
批量删除容器
如果存在大量容器需要删除,可以使用管道方式来批量删除
# docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
948f234e22a1 centos:latest "bash" 2 days ago Exited (0) 2 days ago c1
01cb3e01273c centos:latest "bash" 2 days ago Exited (0) 2 days ago systemimage1
46d950fdfb33 nginx:latest "/docker-ent..." 2 days ago Exited (0) 2 days ago upbeat_goldbergNR>=2代表从第二行开始,print $1 代表只要第一列的容器id
# docker ps --all | awk '{if (NR>=2){print $1}}' | xargs docker rm
docker prune
命令解释
Docker 1.13.0+ 引入了这个清理命令。官方文档。prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像。
使用案例
删除未使用的容器镜像
# docker image prune删除所有未使用的容器镜像
# docker image prune -a删除所有停止运行的容器
# docker container prune删除所有未被挂载的卷
# docker volume prune删除所有网络
# docker network prune删除docker所有资源
# docker system prune
参考说明
本文内容主要来源于马士兵视频教程(容器管理工具 Docker),结合了老师的笔记以及自己的实践做了一些修改。
相关文章:

Docker-基础命令使用
文章目录 前言命令帮助命令执行示意图docker rundocker psdocker inspectdocker execdocker attachdocker stopdocker startdocker topdocker rmdocker prune参考说明 前言 本文主要介绍Docker基础命令的使用方法。 命令帮助 Docker命令获取帮助方法 # docker -h Flag shor…...
【Python 程序设计】Python 中的类型提示【06/8】
目录 一、说明 二、什么是动态类型? 2.1 为什么要使用类型提示? 2.2 局限性 三、基本类型提示 3.1 声明变量的类型 3.2 函数注释 四、Python 中的内置类型 4.1 原子类型与复合类型 五、函数注释 5.1 如何指定函数的参数类型和返回类型 5.2 在函数签名中…...

78 # koa 中间件的实现
上上节实现了上下文的,上一节使用了一下中间件,这一节来实现 koa 的中间件这个洋葱模型。 思路: 储存用户所有的 callback将用户传递的 callback 全部组合起来(redux 里的 compose)组合成一个线性结构依次执行&#…...
国产操作系统麒麟v10中遇到的一些问题
下载pycharm:直接在应用商店 目标:主机1安装了虚拟机,主机2要ping通主机1安装的虚拟机。 前提:主机1,主机2在同一局域网下,同一网段。 网络配置 因为虚拟机的网段不在局域网网段内,局域网下…...

Gridea+GitPage+Gittalk 搭建个人博客
👋通过GrideaGitPage 搭建属于自己的博客! 👻GitPage 负责提供 Web 功能! 😽Gridea 作为本地编辑器,方便 push 文章! 🏷本文讲解如何使用 GrideaGitPage 服务域名(可选&a…...
代码质量保障第2讲:单元测试 - 浅谈单元测试
代码质量保障第2讲:单元测试 - 浅谈单元测试 本文是代码质量保障第2讲,浅谈单元测试。单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。这是基础,所以围绕着单元测试,我从…...

“五度晟企通”企业发展服务平台正式发布,帮扶企业行稳致远!
在数字中国建设的大背景下,“五度易链”以企业实际发展需求为牵引,以帮扶企业行稳致远为目标,基于全体量产业大数据,运用NLP、AI等新一代信息技术,打造了数字化ToB企业发展服务平台“五度晟企通”,旨在以数…...

Java类和对象(七千字详解!!!带你彻底理解类和对象)
目录 一、面向对象的初步认知 1、什么是面向对象 2、面向对象和面向过程 (1)传统洗衣服的过程 (2)现代洗衣服过程 编辑 二、类的定义和使用 1、类的定义格式 三、类的实例化 1、什么是实例化 2、类和对象说明 四、t…...

机器学习笔记:node2vec(论文笔记:node2vec: Scalable Feature Learning for Networks)
2016 KDD 1 intro 利用graph上的节点相似性,对这些节点进行embedding 同质性:节点和其周围节点的embedding比较相似 蓝色节点和其周围的节点结构等价性 结构相近的点embedding相近 比如蓝色节点,都处于多个簇的连接处 2 随机游走 2.1 介绍…...
go基础10 -字符串的高效构造与转换
前面提到过,Go原生支持通过/操作符来连接多个字符串以构造一个更长的字符串,并且通过/操作符的字符串连接构造是最自然、开发体验最好的一种。 但Go还提供了其他一些构造字符串的方法,比如: ● 使用fmt.Sprintf; ● 使…...

VR钢铁实训 | 铁前事业部虚拟仿真培训软件
随着科技的发展,虚拟现实技术在各个行业中的应用越来越广泛。在钢铁冶炼行业中,VR技术也逐渐得到了应用,其中铁前事业部虚拟仿真培训软件就是一项非常有优势的技术。 铁前事业部虚拟仿真培训软件是广州华锐互动打造的《钢铁生产VR虚拟培训系统…...

DevOps
DevOps 是开发 (Dev) 和运营 (Ops) 的复合词,它将人、流程和技术结合起来,不断地为客户提供价值。 DevOps 对团队意味着什么? DevOps 使以前孤立的角色(开发、IT 运营、质量工程和安全)可以协调和协作,以生…...

IJ中PHP环境的搭建和使用教程
目录 目录 前言 思维导图 1,PHP环境下载 1.下载链接 2.进行安装 3,自定义路径 4.进行相关的一些库的选择下载 2,进行IJ中PHP环境的配置 2.1,下载PHP插件 2.2,下载过程中的注意事项 3,为什么这么做呢? 3.1,原因 3.2,进行代码…...

java开发之个人微信的二次开发
简要描述: 修改我在某群的昵称 请求URL: http://域名/updateIInChatRoomNickName 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参…...

ISYSTEM调试实践11-Profiler Timeline和软件运行时间分析
一 前言 本文主要内容是讨论嵌入式软件的时间分析,供大家探讨,如果有疑问欢迎探讨。 对于汽车软件,往往对执行的时序和代码运行的时间有着严格要求。对于在主循环内执行的任务函数,不论是手写还是Autosar生成,能否节拍执行到&…...
第十八章 ObjectScript - 使用例程
文章目录 第十八章 ObjectScript - 使用例程例程Procedures, Functions, and Subroutines 过程、函数和子程序procedurefunctionsubroutine 第十八章 ObjectScript - 使用例程 例程 可以将例程视为 ObjectScript 程序。例程可以从头开始编写,也可以在编译类时自动…...

Linux中select poll和epoll的区别
在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是Linux API提供的I/O复用方式,自从Linux 2.6中加入了epoll之后,在高性能服务器领域得到广泛的应用࿰…...

新知同享|Cloud 开发加速创新,更加安全
谷歌在云平台中深度集成了生成式 AI 功能 帮助出海企业及开发者 轻松借力 AI 推动和实现创新 一起来看 2023 Google 开发者大会上 Google Cloud 如何加速创新,加强信息安全 关注 Google Cloud 的 3 个 AI 重点发展领域 了解生成式 AI 功能如何助推创意落地 精彩大会…...
el-form内容重置(解决点击保存关闭后再点击新增会有编辑携带的数据的问题)
主要代码: this.$refs[ruleForm].resetFields() <template><div class"add-edit-coupon"><el-dialog title"商品优惠券" top"10vh" :visible.sync"dialogVisible" width"660px" :before-close&…...

怎样吃透一个java项目?
前言 对于刚开始看视频敲代码,最忌讳的便是一上来就完全照着视频做,这么做就算完完全全的跟着视频做出来一个项目,始终都无法将里面具体的知识化为己有,单纯来说只是简单的复刻,视频的作者本身是不会对他在做该项目过…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...