Docker常见命令(以备不时之需)

这篇具有很好参考价值的文章主要介绍了Docker常见命令(以备不时之需)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考官网:https://docs.docker.com/engine/reference/commandline/cli/

帮助启动类命令

启动docker: systemctl start docker

停止docker: systemctl stop docker

重启docker: systemctl restart docker

查看docker状态: systemctl status docker

设置开机启动: systemctl enable docker

查看docker概要信息: docker info

查看docker总体帮助文档: docker --help

查看docker总体帮助文档: docker --help

镜像命令

docker images 列出本地主机上的镜像

docker images

docker常用命令,docker,docker,容器

OPTIONS说明:

-a :列出本地所有的镜像(含历史映像层)

-q :只显示镜像ID。

docker常用命令,docker,docker,容器

各个表头参数说明:

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签版本号 不指定显示最新的(latest)一个版本号

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

docker search 查找某个镜像

从远程仓库搜索某个镜像

OPTIONS说明:

–limit : 只列出N个镜像,默认25个

如:docker search --limit 5 redis

docker常用命令,docker,docker,容器

各个表头参数说明:

docker常用命令,docker,docker,容器

docker pul下载镜像

docker pull redis

docker常用命令,docker,docker,容器

没有指定tag默认下载最新版,等价于

docker pull redis:latest

docker system df 查看镜像/容器/数据卷所占的空间

docker system df

docker常用命令,docker,docker,容器

docker rmi删除镜像

删除单个镜像

docker rmi -f 镜像ID

若使用docker rmi 镜像ID 提示该镜像被容器ef9abec1f025 使用,无法被删除

添加–force 或-f 表示强制删除该镜像

docker常用命令,docker,docker,容器

删除多个镜像

docker rmi -f 镜像名1 镜像名2

删除全部镜像

docker rmi -f $(docker images -qa)

将docker images -qa 传递给 docker rmi -f 命令

docker images -qa表示获取全部镜像ID

容器命令

docker pull 下载镜像

有镜像才能创建容器,这是根本前提

docker pull centos

docker pull ubuntu

centos(大约200M)占用内存比ubuntu(大约73M)大, 这里使用ubuntu镜像,

docker常用命令,docker,docker,容器

docker run 新建+启动容器( 交互式操作)

docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

OPTIONS说明(常用):

注意有些是一个减号,有些是两个减号

–name=“容器新名字” 为容器指定一个名称;

-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

也即启动交互式容器(前台有伪终端,等待交互);

-P: 随机端口映射,大写P

-p: 指定端口映射,小写p

docker run -it ubuntu /bin/bash

docker常用命令,docker,docker,容器

参数说明:

-i: 交互式操作。

-t: 终端。

-it:以交互模式启动一个容器,

ubuntu : ubuntu 镜像。

/bin/bash:表示在容器内部打开bash终端,用户可以在终端上执行命令和查看容器内部文件系统。放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:

启动守护式容器(后台运行)

在大部分的场景下,我们希望 docker 的服务是在后台运行的,

我们可以过 -d 指定容器的后台运行模式。

docker run -d ubuntu

docker常用命令,docker,docker,容器

使用docker ps -a 进行查看, 会发现容器已经退出

很重要的要说明的一点: Docker容器如果想要在后台运行,就必须有一个前台进程.

容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。

这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,

我们配置启动服务只需要启动响应的service即可。例如service nginx start

但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,

这样的容器后台启动后,会立即自杀因为他觉得他没事可做了.

所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,

常见就是交互式操作模式,表示我还有交互操作,别中断

以redis为例后台运行

docker run -d redis

docker常用命令,docker,docker,容器

前台交互式启动

以redis为例

docker run -it redis

docker常用命令,docker,docker,容器

对于redis、mysql这些应用,我们一般采用后台守护式启动

docker ps 列出当前所有正在运行的容器

docker ps [OPTIONS]

OPTIONS说明(常用):

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

-l :显示最近创建的容器。

-n:显示最近n个创建的容器。

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

docker常用命令,docker,docker,容器

exit/ctrl+p+q 退出容器

1 exit

run启动容器,exit退出,容器停止

2 ctrl+p+q

run启动容器,ctrl+p+q退出,容器不停止

docker start 启动已停止运行的容器

docker start 93ec18a9b1b6

docker常用命令,docker,docker,容器

docker restart 重启容器

docker restart 93ec18a9b1b6

docker常用命令,docker,docker,容器

docker stop 停止容器

docker stop 93ec18a9b1b6

docker常用命令,docker,docker,容器

docker kill 强制停止容器

docker kill 2f48b8d19c03

docker常用命令,docker,docker,容器

docker rm 删除已停止的容器

启动的容器不允许删除,先停止容器,再进行删除

docker常用命令,docker,docker,容器

或者强制删除

docker rm -f 4ac88c73b274

一次性删除多个容器实例

  1. 将docker ps -a -q返回的结果传递给docker rmi -f 命令

    docker rm -f $(docker ps -a -q)

  2. 将docker ps -a -q 作为参数xargs 执行命令

    docker ps -a -q | xargs docker rm

其它

docker logs查看容器日志

docker logs 0335b4a3cbae

docker常用命令,docker,docker,容器

docker top查看容器内运行的进程

docker top 0335b4a3cbae

docker常用命令,docker,docker,容器

docker inspect查看容器内部细节

docker inspect命令用于查看Docker对象的详细信息。它可以查看容器、镜像、网络等各种对象的详细信息,包括配置、状态、网络等方面的信息。

[root@dongguo ~]# docker inspect 0335b4a3cbae
[
    {
        "Id": "0335b4a3cbae05bfd4c03a19b471f2e320a759ae02bd58f82f2f81c062a30f77",
        "Created": "2023-06-23T21:00:17.885426188Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "redis-server"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 15258,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-06-23T21:00:18.045267761Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:7614ae9453d1d87e740a2056257a6de7135c84037c367e1fffa92ae922784631",
        "ResolvConfPath": "/var/lib/docker/containers/0335b4a3cbae05bfd4c03a19b471f2e320a759ae02bd58f82f2f81c062a30f77/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/0335b4a3cbae05bfd4c03a19b471f2e320a759ae02bd58f82f2f81c062a30f77/hostname",
        "HostsPath": "/var/lib/docker/containers/0335b4a3cbae05bfd4c03a19b471f2e320a759ae02bd58f82f2f81c062a30f77/hosts",
        "LogPath": "/var/lib/docker/containers/0335b4a3cbae05bfd4c03a19b471f2e320a759ae02bd58f82f2f81c062a30f77/0335b4a3cbae05bfd4c03a19b471f2e320a759ae02bd58f82f2f81c062a30f77-json.log",
        "Name": "/festive_ride",
        "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,
            "ConsoleSize": [
                34,
                131
            ],
            "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",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": [],
            "BlkioDeviceWriteBps": [],
            "BlkioDeviceReadIOps": [],
            "BlkioDeviceWriteIOps": [],
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "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/1ca531c9fe50499d3bea2948a29f0e2fae0c4ef27efeb1e7d92a965b67d0af71-init/diff:/var/lib/docker/overlay2/0cb171a5403987a76a8cf3a670b85f01fd6b4b3e3605c4452fdb07fe52e77b9c/diff:/var/lib/docker/overlay2/441e4c82f35c47524d53beaf146cc3b22abf42d59ec31f9687cc586b7dfd051c/diff:/var/lib/docker/overlay2/7a5e7e57e9aba2dcfd758fc0866e9af6dbb3111327544069e6be9d539f970ec3/diff:/var/lib/docker/overlay2/1db4ca7e11010350ad63f9f302f037911ab42e12247946e0610bae41292d40e6/diff:/var/lib/docker/overlay2/23cfa44bd9728c6ea5686c0136196b3328520705d7078a7aa75be3b8401521e3/diff:/var/lib/docker/overlay2/929c534593b838115d695073b935dc877e1c371009ea4274f14b593022f95195/diff",
                "MergedDir": "/var/lib/docker/overlay2/1ca531c9fe50499d3bea2948a29f0e2fae0c4ef27efeb1e7d92a965b67d0af71/merged",
                "UpperDir": "/var/lib/docker/overlay2/1ca531c9fe50499d3bea2948a29f0e2fae0c4ef27efeb1e7d92a965b67d0af71/diff",
                "WorkDir": "/var/lib/docker/overlay2/1ca531c9fe50499d3bea2948a29f0e2fae0c4ef27efeb1e7d92a965b67d0af71/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "volume",
                "Name": "a564bb56e5f355f39526203c2d0c2ccc9ad7cdb3eec883fd73c5b2f3d36f87ac",
                "Source": "/var/lib/docker/volumes/a564bb56e5f355f39526203c2d0c2ccc9ad7cdb3eec883fd73c5b2f3d36f87ac/_data",
                "Destination": "/data",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
        "Config": {
            "Hostname": "0335b4a3cbae",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "6379/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "GOSU_VERSION=1.12",
                "REDIS_VERSION=6.2.6",
                "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.2.6.tar.gz",
                "REDIS_DOWNLOAD_SHA=5b2b8b7a50111ef395bf1c1d5be11e6e167ac018125055daa8b5c2317ae131ab"
            ],
            "Cmd": [
                "redis-server"
            ],
            "Image": "redis",
            "Volumes": {
                "/data": {}
            },
            "WorkingDir": "/data",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "eb1f015b5514625fd0f01ba5d92a4dfe66a9275b85c89f487976675b02134276",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "6379/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/eb1f015b5514",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "1f6670fa68e2627489a004f8cb78c367ddb260b6e8fd379f25a3fc4c070c4775",
            "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": "f3d2dc5a51080f517a978680b82469bb72ee261900f9ab0665d58ea1a28b95d8",
                    "EndpointID": "1f6670fa68e2627489a004f8cb78c367ddb260b6e8fd379f25a3fc4c070c4775",
                    "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 aaa14efee277 /bin/bash

1.运行ubuntu

docker常用命令,docker,docker,容器

开启一个新的会话,进入Ubuntu容器

docker常用命令,docker,docker,容器

docker attach进入正在运行的容器

ocker attach aaa14efee277

docker常用命令,docker,docker,容器

区别

exec 是在容器中打开新的终端,并且可以启动新的进程

用exit退出,不会导致容器的停止。

attach 直接进入容器启动命令的终端,不会启动新的进程

用exit退出,会导致容器的停止。

推荐使用 docker exec 命令,因为退出容器终端,不会导致容器的停止。

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

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

将/下的a.txt拷贝到/tmp目录下

docker cp aaa14efee277:/a.txt /tmp/a.txt

docker常用命令,docker,docker,容器

导入和导出容器

export

导出容器的内容留作为一个tar归档文件

docker常用命令,docker,docker,容器

import

从tar包中的内容创建一个新的文件系统再导入为镜像

cat /tmp/abc.tar | docker import - dongguo/ubuntu:latest文章来源地址https://www.toymoban.com/news/detail-846378.html

到了这里,关于Docker常见命令(以备不时之需)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker——认识Docker & 常用命令 & Linux中安装docker & 常见问题及其解决

    1.认识docker,docker和虚拟机对比; 2.docker的架构,客户端,镜像,容器,仓库; 3.docker常用的命令,docker exec,inspect,ps; 4.Linux安装docker,更换镜像源,ipv4转发开启; Docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用

    2024年02月16日
    浏览(32)
  • 一文学会Docker常见指令以及常见容器安装

    前言 : docker技术应该是每个后端开发人员都需要掌握的知识,熟练掌握docker的常见命令十分必要。 Docker是一种开源的容器化平台,它可以将应用程序及其依赖项打包到一个可移植的容器中,从而实现快速部署和运行。本文将介绍Docker的基本概念、优点和使用方法。 一、Do

    2024年02月11日
    浏览(33)
  • Docker 常见使用

    run -itd 官方文档: https://docs.docker.com/engine/reference/commandline/run/ 选项 选项简写 说明 –detach -d 在后台运行容器, 并且打印容器 id。 –interactive -i 即使没有连接, 也要保持标准输入保持打开状态, 一般与 -t 连用。 –tty -t 分配一个伪 tty, 一般与 -i 连用。 header 1 header 2 header 2 row 1

    2024年02月09日
    浏览(26)
  • docker 常见启动失败问题

    解决方法: 将该新用户添加到docker组,root用户下运行如下命令: 2. 修改/etc/docker/daemon.json后导致docker起不来 多半是daemon.json格式有问题 使用  systemctl status docker 很难看出来真正的问题点。 这个时候使用 dockerd 命令启动docker服务,即可看出出问题的地方: 根据报错去检查d

    2024年02月11日
    浏览(40)
  • Docker常见配置实验

    1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 2、安装搭建私有仓库 Harbor 3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下: 4、Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库。具体要求如下:

    2024年02月11日
    浏览(22)
  • docker常见错误

    报错内容(windows docker) 解决方案 报错内容(windows docker) windows环境下docker 报错如下: 解决方案 用管理员打开 windows power shell 然后执行下述的命令: 操作系统重启后就ok了。 但是会有个问题,之前的images都没了,怎么找回来还需要探索。 报错内容(windows docker) 解决方案

    2024年02月05日
    浏览(21)
  • docker常见面试问题详解

    在面试的时候,面试官常常会问一些问题: docker是什么,能做什么? docker和虚拟机的区别是什么呢? docker是用什么做隔离的? docke的网络类型?docker数据之间是如何通信的? docker的数据保存问题? 常用的docker命令? docker制作镜像相关? 下面,就让我来详细说明一些这些问

    2024年02月10日
    浏览(31)
  • Docker常见的安全问题复现

    Docker是一个开源的应用容器引擎,它可以让用户将应用打包,并依赖包到可移植的容器中。然而,Docker也存在着安全问题。 Docker攻击模型: case1:应用攻击容器 case2:容器攻击其它容器 case3:容器攻击宿主机 case4:主机攻击容器 由于各种各样的原因(相关文档缺乏、背景知

    2024年02月02日
    浏览(36)
  • 使用docker的常见bug

    BUG1:磁盘被占满导致docker无法使用 docker ps 【查看docker能否正常使用】 正常的话会打印下图信息:  不正常的话打印如下图信息:  journalctl -u docker 【查看docker无法正常使用的原因】,本次测试中遇到下图bug,意思是/var/lib/docker被占满,无法新建/var/lib/docker/tmp,所以导致doc

    2024年02月15日
    浏览(24)
  • Docker 容器常见故障排查及处理

    原文链接:https://blog.csdn.net/qq_41958579/article/details/107927140 Docker是一种相对使用较简单的容器,我们可以通过以下几种方式获取信息: 1、通过docker run执行命令,或许返回信息 2、通过docker logs 去获取日志,做有针对性的筛选 3、通过systemctl status docker查看docker服务状态 4、通过

    2024年02月02日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包