docker(2):docker常用命令

news2024/12/23 11:01:56

目录

  • 帮助命令
  • 镜像命令
    • docker images
    • docker search
    • docker pull
    • docker rmi
  • 容器命令
    • docker run
    • docker ps
    • docker rm
    • 启动/停止/退出
  • 其他常用命令
    • 后台启动
    • docker logs
    • docker top
    • docker inspect
    • docker exec
    • Docker attach
    • docker cp
  • 命令大全总结

所有命令请查看帮助文档:https://docs.docker.com/engine/reference/commandline/docker/

帮助命令

docker version  # 显示docker的版本信息
docker info  #显示docker的系统信息
docker 命令 --help  # 万能命令

镜像命令

docker images

列出所有容器的仓库来源,标签,ID,创建时间,大小

可选项

Name, shorthandDefaultDescription
--all , -aShow all images (default hides intermediate images)
--digestsShow digests
--filter , -fFilter output based on conditions provided
--formatPretty-print images using a Go template
--no-truncDon’t truncate output
--quiet , -qOnly show image IDs

根据名字或标签列出镜像

# docker images 镜像名/标签[:版本]
docker images centos:latest

docker search

搜索镜像

docker search mysql
docker search mysql --limit 5

可选项

Name, shorthandDefaultDescription
--filter , -fFilter output based on conditions provided
--formatPretty-print search using a Go template
--limitr25Max number of search results
--no-trunctDon’t truncate output

docker pull

下载镜像

# docker pull 镜像名[:tag]
docker pull mysql
# 打印如下
Using default tag: latest  # 如果不写,tag默认为latest
latest: Pulling from library/mysql
a10c77af2613: Pull complete   # 分层下载,docker images的核心 联合文件系统
b76a7eb51ffd: Pull complete
258223f927e4: Pull complete
2d2c75386df9: Pull complete
63e92e4046c9: Pull complete
f5845c731544: Pull complete
bd0401123a9b: Pull complete
3ef07ec35f1a: Pull complete
c93a31315089: Pull complete
3349ed800d44: Pull complete
6d01857ca4c1: Pull complete
4cc13890eda8: Pull complete
Digest: sha256:aeecae58035f3868bf4f00e5fc623630d8b438db9d05f4d8c6538deb14d4c31b  # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  # 真实地址

注意:mac m1没有mysql镜像没使用如下命令即可

docker pull --platform linux/x86_64 mysql

tag是版本号,默认是’latest ',即最新版,可以指定版本下载:

docker pull mysql:5.7

docker rmi

删除镜像,-f表示强制删除

docker rmi -f e6a0117ec169  # 通过ID删除
docker rmi -f 容器id 容器id  # 删除多个
docker rmi -f $(docker images -aq)  # 全部删除

容器命令

有镜像才可以创建容器

先下载一个centos镜像

docker pull centos

docker run

运行一个容器

可选参数非常多,下面列出常用的

Name, shorthandDefaultDescription
--name容器名字
--detach , -d后台方式运行
--interactive , -i交互方式运行
--tty , -t为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--publish , -p指定容器端口,主机端口:容器端口,如8080:8080
--publish-all , -P随机指定端口
--env , -e设置环境变量
--volume , -v数据卷挂载
--rm退出容器时自动删除,一般测试的时候使用

测试运行一个centos

test@testdeMacBook-Pro ~ % docker run -it centos /bin/bash
[root@4f61dc24a89a /]#

docker ps

列出容器

docker ps  # 列出正在运行的容器
docker ps -a  # 列出正在运行的容器和历史运行过的容器
docker ps -n=?  # 最近创建的n个容器
docker ps -q  # 只显示容器编号

结果如下

test@testdeMacBook-Pro ~ % docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                          PORTS     NAMES
4f61dc24a89a   centos    "/bin/bash"   2 minutes ago   Exited (0) About a minute ago             gifted_tereshkova
1f79c5cbf344   centos    "/bin/bash"   4 days ago      Exited (255) 47 hours ago                 centos1

docker rm

删除容器

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

启动/停止/退出

docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id

退出容器

exit  # 停止并退出容器
ctrl + p + q  # 容器不停止退出

其他常用命令

后台启动

docker run -d centos

上面这种方式,发现centos停止了运行。因为docker容器使用后台运行,必须有一个前台进程,docker发现,没有应用,就会自动停止。使用docker run -it -d centos,其中 -it就是前台应用。

docker logs

查看日志

docker logs [options] 容器ID

options:

Name, shorthandDefaultDescription
--detailsShow extra details provided to logs
--follow , -fFollow log output
--sinceShow logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
--tail , -nallNumber of lines to show from the end of the logs
--timestamps , -tShow timestamps
--untilAPI 1.35+ Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

比如:

docker logs -tf --tail 10 8db2ecb06e9d

docker top

查看容器进程信息

docker top 容器ID

docker inspect

查看容器元信息

docker inspect 8db2ecb06e9d
# 包含容器信息,如完整ID,挂载,网络信息等
[
    {
        "Id": "8db2ecb06e9dac6ca503309cdb2214cccf48e3afc739dae2261c5c9503f87896",
        "Created": "2021-11-27T02:32:16.337485884Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 2077,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-11-27T02:32:16.526287176Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:e6a0117ec169eda93dc5ca978c6ac87580e36765a66097a6bfb6639a3bd4038a",
        "ResolvConfPath": "/var/lib/docker/containers/8db2ecb06e9dac6ca503309cdb2214cccf48e3afc739dae2261c5c9503f87896/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/8db2ecb06e9dac6ca503309cdb2214cccf48e3afc739dae2261c5c9503f87896/hostname",
        "HostsPath": "/var/lib/docker/containers/8db2ecb06e9dac6ca503309cdb2214cccf48e3afc739dae2261c5c9503f87896/hosts",
        "LogPath": "/var/lib/docker/containers/8db2ecb06e9dac6ca503309cdb2214cccf48e3afc739dae2261c5c9503f87896/8db2ecb06e9dac6ca503309cdb2214cccf48e3afc739dae2261c5c9503f87896-json.log",
        "Name": "/optimistic_cerf",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/3d09d6dad1162af25c63c5fffe7701a923a703d9bcf76970c6ae4fd38502c37b-init/diff:/var/lib/docker/overlay2/92c05e645000fce43a6680ce205c154dcb870178d3eb63487dd410802e45fc78/diff",
                "MergedDir": "/var/lib/docker/overlay2/3d09d6dad1162af25c63c5fffe7701a923a703d9bcf76970c6ae4fd38502c37b/merged",
                "UpperDir": "/var/lib/docker/overlay2/3d09d6dad1162af25c63c5fffe7701a923a703d9bcf76970c6ae4fd38502c37b/diff",
                "WorkDir": "/var/lib/docker/overlay2/3d09d6dad1162af25c63c5fffe7701a923a703d9bcf76970c6ae4fd38502c37b/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "8db2ecb06e9d",
            "Domainname": "",
            "User": "",
            "AttachStdin": true,
            "AttachStdout": true,
            "AttachStderr": true,
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": true,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "centos",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20210915",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "79ad5f94eea2304ff998a4ed3bbb950778bc62de585e8f35683ff07cc28c67f3",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/79ad5f94eea2",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "e61868a744567379d8e8762c86e8ef358ab687cd228a5983b0977bda8b21661b",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "db82cd6e917deefa753ca81a9334ba4e17f76332ce7121edffab97f65a42c4d7",
                    "EndpointID": "e61868a744567379d8e8762c86e8ef358ab687cd228a5983b0977bda8b21661b",
                    "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 容器id /bin/bash

Docker attach

也是进入正在运行的容器

docker attach -it 容器id

没有-it选项。与exec区别:exec进入后打开一个新的终端,attach进入容器正在运行的终端,不会启动新的进程。

docker cp

从容器内拷贝文件到主机

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

拷贝是一个手动过程,后面学习数据卷挂载,可以实现容器内和主机文件同步。

命令大全总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计SSM基于售楼系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Span 抽取和元学习能碰撞出怎样的新火花,小样本实体识别来告诉你!

作者:王嘉宁、汪诚愚、谭传奇、邱明辉、黄松芳、黄俊、高明 近日,阿里云机器学习平台PAI与华东师范大学高明教授团队、达摩院机器智能技术NLP团队合作在自然语言处理顶级会议EMNLP2022上发表基于Span和元学习的小样本实体识别算法SpanProto。这是一种面…

界面控件DevExtreme DataGrid——一个多用途的UI组件

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能齐…

【视频】什么是非线性模型与R语言多项式回归、局部平滑样条、 广义相加GAM分析工资数据|数据分享...

全文链接:http://tecdat.cn/?p9706在这文中,我将介绍非线性回归的基础知识。非线性回归是一种对因变量和一组自变量之间的非线性关系进行建模的方法。最后我们用R语言非线性模型预测个人工资数据(查看文末了解数据获取方式)是否每…

《人月神话》(The Mythical Man-Month)看清问题的本质:如果我们想解决问题,就必须试图先去理解它...

第一章 焦油坑(The Tar Pit)史前史中,没有比巨兽在焦油坑中垂死挣扎的场面更令人震撼的了。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧&a…

Linux简化版线程池

目录 一,线程池设计 二,线程池应用场景 三,线程池准备 1,包装一个锁 2,一个任务类 三,线程池 1,成员介绍 2,设计单例模式 3,创建线程池 4,线程池执…

【吴恩达机器学习笔记】十六、应用实例:图片文字识别

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。 📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记&…

【Linux】Zabbix5.0平台的搭建

文章目录项目背景视频展演一、Linux基础配置1、查看当前系统版本2、修改主机名3、修改 IP 地址4、配置防火墙5、关闭 SELINUX6、修改系统时间及时区7、配置 YUM 库方式 1方式 2二、安装apache1、安装 apache2、启动 apache 服务3、设置 httpd 服务开机启动4、查看服务状态5、防…

深度学习——制作自己的VOC图像分割数据集

1、数据集介绍 COCO数据集有80个类别,VOC数据集有20个类别。当这些数据集类别中没有自己需要的时候,就需要自己动手做自己的数据集了。 我自己在做数据集的时候主要使用到了labelme和labelImg两个工具。labelme主要是制作语义分割数据集(ImageSets,JPEGImages,SegmentationC…

kubernetes 1.18 部署 ingress-nginx

文章目录kubernetes 1.18 部署 ingress-nginx1. 下载 yaml 文件2. 安装 ingress-nginx3. 检查安装情况4. 测试验证4.1 查看ingress规则4.2 访问测试5. 其他内容kubernetes 1.18 部署 ingress-nginx 1. 下载 yaml 文件 在 GitHub 下载完成之后可以直接使用,不需要修…

[基因遗传算法]进阶之三:sko.GA的实践TSP

参考资料:《VRP问题分类》 相关文章: 《[基因遗传算法]原理思想和python代码的结合理解之(一) :单变量》 《[基因遗传算法]进阶之二:最优规划问题–多种编码方式多变量》 文章目录一. GA的用法1.1 help(sko.GA)1.2 目标函数的书写A. 单变量的书写B. 多变量的书写C. 变量的范围…

mysql中的B+树、索引跳跃扫描

普通索引 B树的叶子节点上记录的是聚簇索引(主键索引)的值。 联合索引 叶子节点中记录的是name,age两个字段以及主键id的值。 MySQL一定是遵循最左前缀匹配的,这句话在mysql8以前是正确的,没有任何毛病。但是在M…

(文章复现)7.计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度(MATLAB程序)

联系方式:2645521500 复现文章: 计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度——孙惠娟(电网技术—2020) 摘要: 为了促进多能源互补及能源低碳化,本文提出了计及电转气协同的含碳捕集与垃圾焚…

有手就会做,保姆级Jmeter分布式压测操作流程(图文并茂)

分布式压测原理 分布式压测操作 保证本机和执行机的JDK和Jmeter版本一致 配置Jmeter环境变量 配置Jmeter配置文件 上传每个执行机服务jmeter chmod -R 755 apache-jmeter-5.1.1/ 执行机配置写自己的ip 控制机配置所有执行机ip,把server.rmi.ssl.disable改成true 将本机也作…

Java-1208

JVM与Java体系结构 JVM整体结构(上图主要针对hotspot虚拟机) 类加载器: 将字节码文件加载进去,并不一定是java字节码文件,很多语言都会编译成字节码文件使用JVM 运行时数据区: 方法区和堆:使用了…

毕业设计 STM32单片机智能WiFi天气助手 - 物联网 单片机

文章目录0 前言1 设计内容2 软件设计3 关键代码4 最后0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不…

Go设计与实现--数组与切片

数组 初始化 Go语言数组的初始化是在编译期就已经执行好了。这个是初始化的代码&#xff1a; // NewArray returns a new fixed-length array Type. func NewArray(elem *Type, bound int64) *Type {if bound < 0 {base.Fatalf("NewArray: invalid bound %v", …

Security实现前后端分离

Security实现前后端分离 说明 ​ 上一篇和上上一篇我大致介绍了一下security基础使用和oauth2的一些流程&#xff0c;这里在深入了解一些相关的配置项。 ​ 首先我们在梳理一下相关概念&#xff0c;首先基本的security是负责用户认证这这一环节&#xff0c;总而言之就是用户…

PCB入门学习—原理图的绘制1(MCU部分)

目录 2.1 STM32F103VET6 MCU核心电路的绘制 学习目录 2.1 STM32F103VET6 MCU核心电路的绘制 总结&#xff1a;放置元件&#xff0c;连线&#xff0c;放置网络标号&#xff0c;更新序号。 主控放上去之后原理图图纸不太够&#xff1a;双击右边边缘&#xff0c;默认图纸大小是…

【Java小案例】从简到精完美判断年份是闰/平年和该年二月份有几天

目录前言问题描述思路分析解决方案方案一方案二方案三方案四结语前言 1、平年指阳历没有闰日或农历没有闰月的年份&#xff0c;闰年是公历中的名词&#xff0c;是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的&#xff0c;补上时间差的年份为闰年&a…