当前位置:   article > 正文

Docker的常用命令(四)_docker stop容器传递参数为0

docker stop容器传递参数为0

一、帮助命令

帮助文档的地址:https://docs.docker.com/reference/

[root@localhost ~]# docker version  # 显示docker的版本信息
[root@localhost ~]# docker info     # 显示docker的系统信息,包括镜像和容器的数量
[root@localhost ~]# docker --help   # 帮助命令
  • 1
  • 2
  • 3

二、镜像命令

镜像命令的地址:https://docs.docker.com/engine/reference/commandline/images/

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

[root@localhost ~]# docker images   # 查看本地主机上的所有镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              feb5d9fea6a5        7 months ago        13.3kB
  • 1
  • 2
  • 3

解释:
REPOSITORY: 镜像的仓库源
TAG: 镜像的标签(版本号)
IMAGE ID: 镜像的id
CREATED: 镜像的创建时间
SIZE: 镜像的大小

可选项:
-a, --all 列出所有镜像
-q, --quiet 只显示镜像的id

2.docker search 搜索镜像

[root@localhost ~]# docker search mysql # 搜索mysql镜像
  • 1

可选项:
–filter=STARS=3000 搜索出来的镜像就是STARS大于3000的

3.docker pull 下载镜像

# 下载镜像 docker pull 镜像名[:tag]
[root@localhost ~]# docker pull mysql # 下载mysql镜像
Using default tag: latest # 如果不写tag,默认就是latest
latest: Pulling from library/mysql
72a69066d2fe: Pull complete  # 分层下载,docker image的核心,联合文件系统
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709 # 防伪签名
Status: Downloaded newer image for mysql:latest 
docker.io/library/mysql:latest # 真实下载地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

tips:
两种下载方式等价

[root@localhost ~]# docker pull mysql
[root@localhost ~]# docker.io/library/mysql:latest
  • 1
  • 2

指定版本下载:

[root@localhost ~]# docker pull mysql:5.7
  • 1

4.docker rmi 删除镜像

[root@localhost ~]# docker rmi -f 镜像id        # 删除指定的镜像
[root@localhost ~]# docker rmi -f c20987f18b13  # 删除指定的镜像
[root@localhost ~]# docker rmi -f 镜像id 镜像id 镜像id 镜像id     # 删除多个镜像
[root@localhost ~]# docker rmi -f $(docker images -aq)          # 删除全部镜像
  • 1
  • 2
  • 3
  • 4

三、容器命令

tips:
拥有镜像才能创建容器,此处使用linux,下载一个CentOS镜像学习

[root@localhost ~]# docker pull centos # 下载centos容器
  • 1

1.新建容器并启动

docker run [可选参数] image

[root@localhost ~]# docker run -it centos /bin/bash # 启动CentOS容器,并进入容器,使用bash命令
[root@4a806f4039d0 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 参数说明:
--name="Name"          容器名字  tomcat01 tomcat02,用于区分容器
-d                                  后台方式运行
-it                                  使用交互方式运行,进入容器查看内容
-p                                  指定容器的端口 -p 8080:8080
        -p ip:主机端口:容器端口
        -p 主机端口:容器端口(常用)
        -p 容器端口
-P                                  大写P,随机指定端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.从容器中退出到主机

①停止容器并退出

[root@4a806f4039d0 /]# exit # 停止容器并退出
exit
[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
  • 1
  • 2
  • 3
  • 4

②不停止容器并退出
操作指令:Ctrl + P + Q

3.查看运行中的容器

[root@localhost /]# docker ps # 查看运行中的容器

# 参数说明:
                                    列出当前正在运行的容器
-a                                 列出当前正在运行的容器 + 带出历史运行过的容器
-n=?                           显示最近创建的n个容器
-q                                 只显示容器的编号
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4.删除容器

[               /]# docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
[root@localhost /]# docker rm -f $(docker ps -aq) # 删除所有容器(包括正在运行的容器)
[root@localhost /]# docker ps -a -q|xargs docker rm # 删除所有容器
  • 1
  • 2
  • 3

5.启动和停止容器

[               /]# docker start 容器id    # 启动容器 
[               /]# docker restart 容器id  # 重启容器
[               /]# docker stop 容器id     # 停止当前正在运行的容器
[               /]# docker kill 容器id     # 强制停止当前的容器
  • 1
  • 2
  • 3
  • 4

四、常用的其他命令

1.后台启动容器

命令:docker run -d 镜像名

[root@localhost /]# docker run -d centos
8b0fe80452bcbbea15f39bfd365d039ca56be689718277bad0ec33a86780d5c8
[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost /]#
  • 1
  • 2
  • 3
  • 4
  • 5

tips:
docker ps 发现centos停止了。
常见的坑,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
nginx,容器启动后,发现自己没有提供服务,就会立刻停止

2.查看日志

命令:docker logs

[               /]# docker logs 容器id    # 查看容器全部日志
[               /]# docker logs -tf 容器id    # 查看容器全部日志(带时间戳)
[               /]# docker logs -tf --tail 10 容器id    # 查看容器10条日志(带时间戳),并实时打印日志
  • 1
  • 2
  • 3

tips:
如果没有日志,自己编写一段shell脚本

"while true;do echo neusoftzy;sleep 1;done" # 循环执行,每秒输出一次neusoftzy
  • 1

运行带shell脚本的centos容器

[root@localhost /]# docker run -d centos /bin/sh -c "while true;do echo neusoftzy;sleep 1;done"
f97b4009803ddc9e66f491aac354c943372b76929c9e98636a95dca688e1501b # 输出结果。表示容器开始运行
  • 1
  • 2

3.查看容器中进程信息

命令:docker top 容器id

[root@localhost /]# docker top f97b4009803d 
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                3731                3721                0                   12:37               ?                   00:00:00            /bin/sh -c while true;do echo neusoftzy;sleep 1;done
root                4368                3731                0                   12:47               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
  • 1
  • 2
  • 3
  • 4

4.查看容器中的元数据

命令:docker inspect 容器id

[root@localhost /]# docker inspect f97b4009803d
[
    {
        "Id": "f97b4009803ddc9e66f491aac354c943372b76929c9e98636a95dca688e1501b", # 容器id,取前12位
        "Created": "2022-05-04T04:37:39.420458637Z", # 容器创建时间
        "Path": "/bin/sh", # 默认的bash控制台
        "Args": [ # 传递的参数
            "-c",
            "while true;do echo neusoftzy;sleep 1;done" # 此处为自定义传递的shell脚本
        ],
        "State": { # 状态
            "Status": "running", # 运行中
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 3731, # 父进程id
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-05-04T04:37:39.540798246Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6", # 镜像id
        "ResolvConfPath": "/var/lib/docker/containers/f97b4009803ddc9e66f491aac354c943372b76929c9e98636a95dca688e1501b/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/f97b4009803ddc9e66f491aac354c943372b76929c9e98636a95dca688e1501b/hostname",
        "HostsPath": "/var/lib/docker/containers/f97b4009803ddc9e66f491aac354c943372b76929c9e98636a95dca688e1501b/hosts",
        "LogPath": "/var/lib/docker/containers/f97b4009803ddc9e66f491aac354c943372b76929c9e98636a95dca688e1501b/f97b4009803ddc9e66f491aac354c943372b76929c9e98636a95dca688e1501b-json.log",
        "Name": "/epic_shannon",
        "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,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "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,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/32efaec99b5fcb14453799038606b4a07df8af3126b06786c30b8cee8de4a4df-init/diff:/var/lib/docker/overlay2/a7c3d0fc1fbcef82521399f9956ccc498fa2ba8880d786618e0e09b7277e21ff/diff",
                "MergedDir": "/var/lib/docker/overlay2/32efaec99b5fcb14453799038606b4a07df8af3126b06786c30b8cee8de4a4df/merged",
                "UpperDir": "/var/lib/docker/overlay2/32efaec99b5fcb14453799038606b4a07df8af3126b06786c30b8cee8de4a4df/diff",
                "WorkDir": "/var/lib/docker/overlay2/32efaec99b5fcb14453799038606b4a07df8af3126b06786c30b8cee8de4a4df/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [], # 挂载
        "Config": { # 基本配置
            "Hostname": "f97b4009803d", # 默认容器名字
            "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": [ # cmd命令
                "/bin/sh",
                "-c",
                "while true;do echo neusoftzy;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": "b8f0e037b1ae57088291fb2babde50f61ffb559affab99c7074dedd0155fe82e",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/b8f0e037b1ae",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "a7f13f496455039f96bbd5b2dba7bc5a7158fda0f395375a86d0f1db98672993",
            "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": "a6a9f85b9d7c1a24bac194fc3296afb33de585c7a885ac9943fa239659f5c1e2",
                    "EndpointID": "a7f13f496455039f96bbd5b2dba7bc5a7158fda0f395375a86d0f1db98672993",
                    "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
                }
            }
        }
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187

5.进入当前正在运行的容器

通常容器都是使用后台方式运行的,需要进入容器,修改一些配置。

第一种方式(常用):进入容器后开启一个新的终端,可以在里面操作
命令:docker exec 容器id

[root@localhost /]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
f97b4009803d        centos              "/bin/sh -c 'while t…"   29 minutes ago      Up 29 minutes                           epic_shannon
[root@localhost /]# docker exec -it f97b4009803d /bin/bash # 以交互模式进入正在运行的容器
[root@f97b4009803d /]# exit
exit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

第二种方式:进入容器正在执行的终端,不会启动新的进程。
命令:docker attach 容器id

[root@localhost /]# docker attach f97b4009803d
  • 1

6.文件拷贝:容器 ---->主机

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

[root@localhost /]# docker run -it centos /bin/bash # 以交互模式启动centos
[root@a30b7cf5a451 /]# [root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost /]# docker ps # 查看当前运行中的容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
a30b7cf5a451        centos              "/bin/bash"         29 seconds ago      Up 28 seconds                           dreamy_borg
[root@localhost /]# docker attach a30b7cf5a451 # 进入容器
[root@a30b7cf5a451 /]# cd  /home/ # 进入到/home路径下
[root@a30b7cf5a451 home]# ls
[root@a30b7cf5a451 home]# touch test.java # 创建一个test.java文件
[root@a30b7cf5a451 home]# ls
test.java # 拷贝test.java文件
[root@a30b7cf5a451 home]# exit # 停止并退出容器,也可以不退出 使用 ctrl+p+q
exit
[root@localhost /]# docker ps # 当前容器已停止
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost /]# docker ps -a # 查看历史所有容器(查看运行过的容器id)
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                           PORTS               NAMES
a30b7cf5a451        centos              "/bin/bash"              7 minutes ago       Exited (0) 18 seconds ago                            dreamy_borg
213636aca5c4        centos              "/bin/bash"              8 minutes ago       Exited (0) 8 minutes ago                             pedantic_mestorf
f97b4009803d        centos              "/bin/sh -c 'while t…"   About an hour ago   Exited (137) 9 minutes ago                           epic_shannon
e5558e1e34ab        centos              "/bin/sh -C 'while t…"   About an hour ago   Exited (127) About an hour ago                       goofy_kalam
8b0fe80452bc        centos              "/bin/bash"              About an hour ago   Exited (0) About an hour ago                         quizzical_kilby
c35efbe2d12d        centos              "/bin/bash"              About an hour ago   Exited (0) About an hour ago                         sad_kirch
[root@localhost /]# cd /home # 进入到主机home路径下
[root@localhost home]# docker cp a30b7cf5a451:/home/test.java /home # 拷贝操作
[root@localhost home]# ls
test.java # 拷贝成功
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

五、命令总结

在这里插入图片描述

命令解释说明
attachAttach to a running container当前shell下attach连接指定运行镜像
buildBuild an image from a Dockerfile通过Dockerfile定制镜像
commitCreate a new image from a container changes提交当前容器为新镜像
cpCopy files/folders from the containers filesystem to the host path从容器中拷贝指定文件或者目录到宿主机中
createCreate a new container创建一个新的容器,同run,但不能启动容器
diffInspect changes on a container’s filesystem查看docker容器变化
eventsGet real time events from the server从Docker服务获取容器实时事件
execRun a command in an existing container在已存在的容器上运行命令
exportStream the contents of a container as a tar archive导出容器的内容流作为一个tar归档文件 [ 对应import ]
historyShow the history of an image展示一个镜像形成历史
imagesList images列出系统当前镜像
importCreate a new filesystem image from the contents of a tarball从tar包中的内容创建一个新的文件系统镜像[ 对应export ]
infoDisplay system-wide information显示系统相关信息
inspectReturn low-level information on a container查看容器详细信息
killKill a running containerkill一个指定的docker容器
loadLoad an image from a tar archive从一个 tar 包中加载一个镜像 [ 对应 save ]
loginRegister or login in to the docker registry server注册或者登录一个 docker 源服务器
logoutLog out from a Docker registry server从当前 Docker registry 退出
logsFetch the logs of a container输出当前容器日志信息
portLookup the public-facing port which is NAT-ed to PRIVATE_PROT查看映射端口对应的容器内部源端口
pausePause all processes within a container暂停容器
psList containers列出容器列表
pullPull an image or a repository from the docker registry server从docker镜像源服务器拉取指定镜像或者库镜像
pushPush an image or a repository to the docker registry server推送指定镜像或者库镜像至docker源服务器
restartRestart a running container重启运行的容器
rmRemove one or more containers移除一个或者多个容器
rmiRemove one or more images移除一个或多个镜像 [ 无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除 ]
runRun a command in a new container创建一个新的容器并运行一个命令
saveSave an image to a tar archive保存一个镜像为一个tar包 [ 对应 load ]
searchSearch for an image on the Docker Hub在 Docker Hub 中搜索镜像
startStart a stopped container启动容器
stopStop a running container停止容器
tagTag an image into a repository给源中镜像打标签
topLook up the running processes of container查看容器中运行的进程信息
unpauseUnpause a pauseed container取消暂停容器
versionShow the docker version information查看 docker 版本号
waitBlock until a container stops, then print its exit code截取容器停止时的退出状态值
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/868001
推荐阅读
相关标签
  

闽ICP备14008679号