【原创】Docker实战系列

Docke管理-容器的基本管理

2020-04-17  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读