0
点赞
收藏
分享

微信扫一扫

#yyds干活盘点#6.Docker其他命令

鱼满舱 2022-02-13 阅读 37

6. Docker的其他命令

6.1 其他命令

docker run -d

docker rnu -d 镜像名 后台启动容器。

这里会遇到一个问题:

[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND    CREATED        STATUS                    PORTS     NAMES
7eeaf525e5e2   feb5d9fea6a5   "/hello"   25 hours ago   Exited (0) 25 hours ago             frosty_satoshi
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker run -d centos
34612f9f0b3514bdea621cd6af3273eaed217b3466e278e75c0d1b9b6315a605
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                      PORTS     NAMES
34612f9f0b35   centos         "/bin/bash"   10 seconds ago   Exited (0) 10 seconds ago             thirsty_pike
7eeaf525e5e2   feb5d9fea6a5   "/hello"      25 hours ago     Exited (0) 25 hours ago               frosty_satoshi
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# 

从上面的信息中可以看到,后台启动完成后,容器没有运行起来。

这是由于容器中没有前台进程,docker发现容器中没有应用,就会自动停止。

docker logs

docker logs -t -f 容器ID 查看容器中的日志

docker logs -t -f --tail 10 容器ID 查看容器中最近10条日志

注意点:

  1. 上面命令中的-t -f 可以写成 -tf
  2. --tail 后面必须跟数量,否则命令会报错。

由于后台启动centos后,容器没有运行起来,因此,我们在启动centos时,添加一些shell脚本,让它有日志输出,具体使用如下:

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

使用示例:

# 查看正在运行的容器,现在是没有正在运行的容器的
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 添加shell脚本,并后台启动容器 
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker run -d centos /bin/bash -c "while true; do echo docker Study;sleep 1;done"
f5dfecee13e49a6f3e3068d429442f0291ec997721dec86ff08c099388dbc5e8
# 查看正在运行的容器,看到有一个正在运行的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
f5dfecee13e4   centos    "/bin/bash -c 'while…"   3 seconds ago   Up 2 seconds             hungry_ardinghelli
# 查看最近10行的日志
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker logs -t -f --tail 10 f5dfecee13e4
2022-02-09T01:49:19.920251511Z docker Study
2022-02-09T01:49:20.922077457Z docker Study
2022-02-09T01:49:21.923938479Z docker Study
2022-02-09T01:49:22.925857468Z docker Study
2022-02-09T01:49:23.927790121Z docker Study
2022-02-09T01:49:24.929703095Z docker Study
2022-02-09T01:49:25.931556634Z docker Study
2022-02-09T01:49:26.933378454Z docker Study
2022-02-09T01:49:27.935238410Z docker Study
2022-02-09T01:49:28.937185684Z docker Study
2022-02-09T01:49:29.939224225Z docker Study
2022-02-09T01:49:30.941434743Z docker Study
2022-02-09T01:49:31.943425141Z docker Study
^C
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# 

docker top

docker top 容器ID 查看容器中的进程信息。

具体使用:

[root@iZ8vb6lqqya4rvreq9ra6gZ yum.repos.d]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
f5dfecee13e4   centos    "/bin/bash -c 'while…"   15 minutes ago   Up 15 minutes             hungry_ardinghelli
[root@iZ8vb6lqqya4rvreq9ra6gZ yum.repos.d]# docker top f5dfecee13e4
UID   PID     PPID    C  STIME  TTY TIME      CMD
root  20591   20569   0  09:48  ?   00:00:00  /bin/bash -c while true; do echo docker Study;sleep 1;done
root  21620   20591   0  10:04  ?   00:00:00  /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
[root@iZ8vb6lqqya4rvreq9ra6gZ yum.repos.d]# 

docker inspect

docker inspect 容器ID 查看容器的元数据信息。

具体使用:

[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
f5dfecee13e4   centos    "/bin/bash -c 'while…"   24 minutes ago   Up 24 minutes             hungry_ardinghelli
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker inspect f5dfecee13e4
[
    {
        "Id": "f5dfecee13e49a6f3e3068d429442f0291ec997721dec86ff08c099388dbc5e8",
        "Created": "2022-02-09T01:48:55.657921841Z",
        "Path": "/bin/bash",
        "Args": [
            "-c",
            "while true; do echo docker Study;sleep 1;done"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 20591,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-02-09T01:48:55.874657542Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6",
        "ResolvConfPath": "/var/lib/docker/containers/f5dfecee13e49a6f3e3068d429442f0291ec997721dec86ff08c099388dbc5e8/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/f5dfecee13e49a6f3e3068d429442f0291ec997721dec86ff08c099388dbc5e8/hostname",
        "HostsPath": "/var/lib/docker/containers/f5dfecee13e49a6f3e3068d429442f0291ec997721dec86ff08c099388dbc5e8/hosts",
        "LogPath": "/var/lib/docker/containers/f5dfecee13e49a6f3e3068d429442f0291ec997721dec86ff08c099388dbc5e8/f5dfecee13e49a6f3e3068d429442f0291ec997721dec86ff08c099388dbc5e8-json.log",
        "Name": "/hungry_ardinghelli",
        "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/52cc5c7613ebd634dca1461a9b92cc91e4d016f1ec99dd61da6abeeb920d80ce-init/diff:/var/lib/docker/overlay2/ddf7995c9ece62ff1e94cfee5d7ab4b3bd2b91bf6ef53884acfe4bfa1633082c/diff",
                "MergedDir": "/var/lib/docker/overlay2/52cc5c7613ebd634dca1461a9b92cc91e4d016f1ec99dd61da6abeeb920d80ce/merged",
                "UpperDir": "/var/lib/docker/overlay2/52cc5c7613ebd634dca1461a9b92cc91e4d016f1ec99dd61da6abeeb920d80ce/diff",
                "WorkDir": "/var/lib/docker/overlay2/52cc5c7613ebd634dca1461a9b92cc91e4d016f1ec99dd61da6abeeb920d80ce/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "f5dfecee13e4",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash",
                "-c",
                "while true; do echo docker Study;sleep 1;done"
            ],
            "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": "37eba1ed816a7fe4a034973275eb382ea048b9fe8190ecbc5eefa4500d31b83d",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/37eba1ed816a",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "e2b05e425969c71efc799e9c9760d6a4c26360343461b13724afd554867a1bae",
            "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": "3cbfdc6d80e8557e9db9d94e718406866c8c96e50d16614f6c2c71d5d9e17a1c",
                    "EndpointID": "e2b05e425969c71efc799e9c9760d6a4c26360343461b13724afd554867a1bae",
                    "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
                }
            }
        }
    }
]
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# 

docker exec

docker exec -it 容器ID /bin/bash 进入正在运行的容器。

具体使用:

[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS       PORTS     NAMES
f5dfecee13e4   centos    "/bin/bash -c 'while…"   2 hours ago   Up 2 hours             hungry_ardinghelli
# 进入容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker exec -it f5dfecee13e4 /bin/bash
[root@f5dfecee13e4 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@f5dfecee13e4 /]# exit
exit
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# 

docker attach

docker attach 容器ID 进入正在运行的容器。

具体使用:

[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS       PORTS     NAMES
f5dfecee13e4   centos    "/bin/bash -c 'while…"   6 hours ago   Up 6 hours             hungry_ardinghelli
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker attach f5dfecee13e4
docker Study
docker Study
docker Study
docker Study
docker Study
docker Study
docker Study
docker Study

docker exec 与 docker attach 区别

docker exec 进入容器后,开启一个新的终端,可以在里面进行操作(常用)

docker attach 进入容器正在执行的终端,不会启动新的进程。

docker cp

docker cp 容器ID:文件目录 宿主机路径 将容器中的文件,从容器内拷贝到宿主机中。

具体使用:

# 1.查看当前运行到容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS       PORTS     NAMES
f5dfecee13e4   centos    "/bin/bash -c 'while…"   6 hours ago   Up 6 hours             hungry_ardinghelli
# 2.打开宿主机home目录
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# cd /home/
# 3.查看宿主机home目录下的文件,现在是没有任何文件的
[root@iZ8vb6lqqya4rvreq9ra6gZ home]# ls
# 4.进入f5dfecee13e4容器内
[root@iZ8vb6lqqya4rvreq9ra6gZ home]# docker exec -it f5dfecee13e4 /bin/bash
# 5.打开容器内的home目录
[root@f5dfecee13e4 /]# cd home/
# 6.查看容器内home目录下的文件,现在是没有任何文件的
[root@f5dfecee13e4 home]# ls
# 7.在容器内home目录下,创建一个文件:docker.java
[root@f5dfecee13e4 home]# touch docker.java 
# 8.查看容器内home目录下的文件,现在有了docker.java 
[root@f5dfecee13e4 home]# ls
docker.java
# 9.退出容器
[root@f5dfecee13e4 home]# exit
exit
# 10.拷贝容器中的docker.java文件到宿主机的home目录下
[root@iZ8vb6lqqya4rvreq9ra6gZ home]# docker cp f5dfecee13e4:/home/docker.java /home/
# 11.查看宿主机home目录下是否出现了docker.java
[root@iZ8vb6lqqya4rvreq9ra6gZ home]# pwd
/home
[root@iZ8vb6lqqya4rvreq9ra6gZ home]# ls
docker.java
[root@iZ8vb6lqqya4rvreq9ra6gZ home]# 
举报

相关推荐

0 条评论