美文网首页【原创】Docker实战系列
Docke管理-容器的基本管理

Docke管理-容器的基本管理

作者: 复苏的兵马俑 | 来源:发表于2020-04-17 10:53 被阅读0次

    1、创建容器

       A)交互式的容器:工具类容器,一般适用于开发、测试、临时性的场景使用。

    # 以交互式方式启动容器,默认不命名,系统自动生成容器名称
    [root@Server ~]# docker container run -it 470671670cac
    [root@801fc7ca95c9 /]# 
    
    [root@801fc7ca95c9 /]# cat /etc/centos-release
    CentOS Linux release 8.1.1911 (Core)
    
    # 查看正在运行的容器列表
    [root@Server ~]# docker container ls
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    801fc7ca95c9        470671670cac        "/bin/bash"         2 minutes ago       Up 2 minutes                            condescending_bouman
    
    [root@Server ~]# docker container run -it --name="Server_centos77" centos:7.7.1908
    
    [root@17ceb99ee3fb /]# cat /etc/centos-release
    CentOS Linux release 7.7.1908 (Core)
    
    # 查看所有的容器列表
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"         About a minute ago   Up About a minute                       Server_centos77
    801fc7ca95c9        470671670cac        "/bin/bash"         9 minutes ago        Up 9 minutes                            condescending_bouman
    
    # 查看所有的容器列表
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"         About a minute ago   Up About a minute                       Server_centos77
    801fc7ca95c9        470671670cac        "/bin/bash"         9 minutes ago        Up 9 minutes                            condescending_bouman
    
    [root@801fc7ca95c9 /]# exit
    exit
    
    [root@Server ~]# docker container ls -a --no-trunc
    CONTAINER ID                                                       IMAGE               COMMAND                    CREATED             STATUS                      PORTS                  NAMES
    eacc81f7f53579e9a95013acab73c9813e5b6b2d93d944f51075d58730feaa56   nginx:latest        "nginx -g 'daemon off;'"   About an hour ago   Up About an hour            0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf6490ea37fddb0a3d9255dc1b2cc043341feb6ea6db7607d7500dbb0   5a8dfb2ca731        "nginx -g 'daemon off;'"   2 hours ago         Exited (0) 48 minutes ago                          Server_nginx
    17ceb99ee3fb212f24e761110d7428c0930d81e52b80f537e3931e52f357b8ce   centos:7.7.1908     "/bin/bash"                2 hours ago         Up 37 minutes                                      Server_centos77
    
    [root@Server ~]# docker container rm 801fc7ca95c9
    801fc7ca95c9
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   15 minutes ago      Up 15 minutes       80/tcp              Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              22 minutes ago      Up 22 minutes                           Server_centos77
    
    [root@Server ~]# docker container run -it --name="Server_centos81" --rm 470671670cac
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    778a7b430778        470671670cac        "/bin/bash"              28 seconds ago      Up 26 seconds                           Server_centos81
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   17 minutes ago      Up 17 minutes       80/tcp              Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              23 minutes ago      Up 23 minutes                           Server_centos77
    
    [root@778a7b430778 /]# exit
    exit
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   18 minutes ago      Up 18 minutes       80/tcp              Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              24 minutes ago      Up 24 minutes                           Server_centos77
    

       B)守护式的容器:网络服务类容器,SSH、HTTP、FTP等。

    [root@Server ~]# docker container run -d --name="Server_nginx" 5a8dfb2ca731
    e8fb2d4cf6490ea37fddb0a3d9255dc1b2cc043341feb6ea6db7607d7500dbb0
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   32 seconds ago      Up 31 seconds       80/tcp              Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              6 minutes ago       Up 6 minutes                            Server_centos77
    801fc7ca95c9        470671670cac        "/bin/bash"              15 minutes ago      Up 15 minutes                           condescending_bouman
    
    [root@Server ~]# docker container inspect Server_nginx
    [
        {
            "Id": "e8fb2d4cf6490ea37fddb0a3d9255dc1b2cc043341feb6ea6db7607d7500dbb0",
            "Created": "2020-04-17T01:48:58.813149906Z",
            "Path": "nginx",
            "Args": [
                "-g",
                "daemon off;"
            ],
            "State": {
                "Status": "running",
                "Running": true,
                "Paused": false,
                "Restarting": false,
                "OOMKilled": false,
                "Dead": false,
                "Pid": 6112,
                "ExitCode": 0,
                "Error": "",
                "StartedAt": "2020-04-17T01:48:59.853111028Z",
                "FinishedAt": "0001-01-01T00:00:00Z"
            },
            "Image": "sha256:5a8dfb2ca7312ee39433331b11d92f45bb19d7809f7c0ff19e1d01a2c131e959",
            "ResolvConfPath": "/var/lib/docker/containers/e8fb2d4cf6490ea37fddb0a3d9255dc1b2cc043341feb6ea6db7607d7500dbb0/resolv.conf",
            "HostnamePath": "/var/lib/docker/containers/e8fb2d4cf6490ea37fddb0a3d9255dc1b2cc043341feb6ea6db7607d7500dbb0/hostname",
            "HostsPath": "/var/lib/docker/containers/e8fb2d4cf6490ea37fddb0a3d9255dc1b2cc043341feb6ea6db7607d7500dbb0/hosts",
            "LogPath": "/var/lib/docker/containers/e8fb2d4cf6490ea37fddb0a3d9255dc1b2cc043341feb6ea6db7607d7500dbb0/e8fb2d4cf6490ea37fddb0a3d9255dc1b2cc043341feb6ea6db7607d7500dbb0-json.log",
            "Name": "/Server_nginx",
            "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,
                "Capabilities": null,
                "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/efcb20f979b480aa620458ba70374a5dc14dae08b0debc3a7cda6f3c8a987934-init/diff:/var/lib/docker/overlay2/56f05eba8a06d99ed65c0beb6157bc0063f2f78da7fb0b7cac3a31f91c0d0f13/diff:/var/lib/docker/overlay2/067548238a7b51be81844b726818c8322ec014d65bf4b20e9054977192281315/diff:/var/lib/docker/overlay2/59c0d7f716394b5ffedf1a6829e5919da139f0bec6d133490266b44960dd9fb4/diff",
                    "MergedDir": "/var/lib/docker/overlay2/efcb20f979b480aa620458ba70374a5dc14dae08b0debc3a7cda6f3c8a987934/merged",
                    "UpperDir": "/var/lib/docker/overlay2/efcb20f979b480aa620458ba70374a5dc14dae08b0debc3a7cda6f3c8a987934/diff",
                    "WorkDir": "/var/lib/docker/overlay2/efcb20f979b480aa620458ba70374a5dc14dae08b0debc3a7cda6f3c8a987934/work"
                },
                "Name": "overlay2"
            },
            "Mounts": [],
            "Config": {
                "Hostname": "e8fb2d4cf649",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "ExposedPorts": {
                    "80/tcp": {}
                },
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                    "NGINX_VERSION=1.17.9",
                    "NJS_VERSION=0.3.9",
                    "PKG_RELEASE=1~buster"
                ],
                "Cmd": [
                    "nginx",
                    "-g",
                    "daemon off;"
                ],
                "Image": "5a8dfb2ca731",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {
                    "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
                },
                "StopSignal": "SIGTERM"
            },
            "NetworkSettings": {
                "Bridge": "",
                "SandboxID": "38605108eb9be553820339a1ab86cec745a56cd4d8e299516c2f9d363f062434",
                "HairpinMode": false,
                "LinkLocalIPv6Address": "",
                "LinkLocalIPv6PrefixLen": 0,
                "Ports": {
                    "80/tcp": null
                },
                "SandboxKey": "/var/run/docker/netns/38605108eb9b",
                "SecondaryIPAddresses": null,
                "SecondaryIPv6Addresses": null,
                "EndpointID": "63167dd5bb941be1a8186b1f5f82ef2f6b682c7bd7668d9e8756f8639f190509",
                "Gateway": "172.17.0.1",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "IPAddress": "172.17.0.4",
                "IPPrefixLen": 16,
                "IPv6Gateway": "",
                "MacAddress": "02:42:ac:11:00:04",
                "Networks": {
                    "bridge": {
                        "IPAMConfig": null,
                        "Links": null,
                        "Aliases": null,
                        "NetworkID": "6cd0c524350127caafa9b2c1394aa25333836dd8e91d3040066b763fabdc4f65",
                        "EndpointID": "63167dd5bb941be1a8186b1f5f82ef2f6b682c7bd7668d9e8756f8639f190509",
                        "Gateway": "172.17.0.1",
                        "IPAddress": "172.17.0.4",
                        "IPPrefixLen": 16,
                        "IPv6Gateway": "",
                        "GlobalIPv6Address": "",
                        "GlobalIPv6PrefixLen": 0,
                        "MacAddress": "02:42:ac:11:00:04",
                        "DriverOpts": null
                    }
                }
            }
        }
    ]
    
    [root@Server ~]# curl -I 172.17.0.4
    HTTP/1.1 200 OK
    Server: nginx/1.17.9
    Date: Fri, 17 Apr 2020 01:53:40 GMT
    Content-Type: text/html
    Content-Length: 612
    Last-Modified: Tue, 03 Mar 2020 14:32:47 GMT
    Connection: keep-alive
    ETag: "5e5e6a8f-264"
    Accept-Ranges: bytes
    
    [root@Server ~]# docker container run -d -p 8080:80 --name="Server_nginx_80" nginx:latest
    eacc81f7f53579e9a95013acab73c9813e5b6b2d93d944f51075d58730feaa56
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   12 seconds ago      Up 11 seconds       0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   30 minutes ago      Up 30 minutes       80/tcp                 Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              36 minutes ago      Up 36 minutes                              Server_centos77
    
    外部访问容器提供的Nginx服务

    2、容器的启动、关闭和连接

       A)容器的启动和关闭

    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   13 minutes ago      Up 13 minutes                0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   44 minutes ago      Exited (0) 6 seconds ago                            Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              50 minutes ago      Exited (137) 2 minutes ago                          Server_centos77
    
    [root@Server ~]# docker container start Server_nginx
    Server_nginx
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   14 minutes ago      Up 14 minutes                0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   44 minutes ago      Up 2 seconds                 80/tcp                 Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              50 minutes ago      Exited (137) 2 minutes ago                          Server_centos77
    
    [root@Server ~]# docker container stop Server_nginx
    Server_nginx
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   14 minutes ago      Up 14 minutes                0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   44 minutes ago      Exited (0) 2 seconds ago                            Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              51 minutes ago      Exited (137) 2 minutes ago                          Server_centos77
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   14 minutes ago      Up 14 minutes                0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   44 minutes ago      Exited (0) 2 seconds ago                            Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              51 minutes ago      Exited (137) 2 minutes ago                          Server_centos77
    
    [root@Server ~]# docker container start -i Server_centos77
    [root@17ceb99ee3fb /]#
    
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   17 minutes ago      Up 17 minutes              0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   47 minutes ago      Exited (0) 2 minutes ago                          Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              53 minutes ago      Up 24 seconds                                     Server_centos77
    
    [root@Server ~]# docker container stop Server_centos77
    Server_centos77
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   18 minutes ago      Up 18 minutes                0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   48 minutes ago      Exited (0) 3 minutes ago                            Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              54 minutes ago      Exited (137) 4 seconds ago                          Server_centos77
    

       B)容器的连接

    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   22 minutes ago      Up 22 minutes              0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   53 minutes ago      Exited (0) 8 minutes ago                          Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              59 minutes ago      Up 4 seconds                                      Server_centos77
    
    # 以主进程的方式登录,退出后会影响当前容器,可使用组合键`Ctrl + p, q`切换到守护式运行。
    [root@Server ~]# docker container attach Server_centos77
    [root@17ceb99ee3fb /]# read escape sequence  # 按住`Ctrl`,然后按`p`后松开,再按`q`即可
    [root@Server ~]#
    
    # 以子进程的方式登录,可以进行容器的调试,退出时不会影响到当前容器
    [root@Server ~]# docker container exec -it Server_centos77 /bin/bash
    [root@17ceb99ee3fb /]# exit
    exit
    [root@Server ~]# docker container ls -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                  NAMES
    eacc81f7f535        nginx:latest        "nginx -g 'daemon of…"   30 minutes ago      Up 30 minutes               0.0.0.0:8080->80/tcp   Server_nginx_80
    e8fb2d4cf649        5a8dfb2ca731        "nginx -g 'daemon of…"   About an hour ago   Exited (0) 16 minutes ago                          Server_nginx
    17ceb99ee3fb        centos:7.7.1908     "/bin/bash"              About an hour ago   Up 5 minutes                                       Server_centos77
    

    相关文章

      网友评论

        本文标题:Docke管理-容器的基本管理

        本文链接:https://www.haomeiwen.com/subject/zznsvhtx.html