美文网首页
docker 记录

docker 记录

作者: 王国的荣耀 | 来源:发表于2021-01-19 10:44 被阅读0次

    docker 记录

    docker 启动容器、进入容器、删除容器等

    ➜  Downloads docker ps -a
    CONTAINER ID   IMAGE     COMMAND       CREATED        STATUS                    PORTS     NAMES
    19d7ad3d29cb   centos    "/bin/bash"   14 hours ago   Exited (0) 13 hours ago             charming_engelbart
    
    # 启动容器
    ➜  Downloads docker start 19d7ad3d29cb
    19d7ad3d29cb
    
    # 进入容器
    ➜  Downloads docker attach 19d
    
    # 删除容器
    ➜  Downloads docker rm 0509
    Error response from daemon: You cannot remove a running container 0509d2e0e68d29c4b60bf00d7e444cd5f10e000c6db8e0c69e6472b7eb31059c. Stop the container before attempting removal or force remove
    
    # 强制删除容器
    ➜  Downloads docker rm -f 0509
    0509
    
    # 容器导出
    big-data docker export -o ./centos_1-19.tar 19d
    
    
    # 当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。使用 docker ps 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。
    
     docker run -d -P training/webapp python app.py
    docker ps -l
    CONTAINER ID  IMAGE                   COMMAND       CREATED        STATUS        PORTS                    NAMES
    bc533791f3f5  training/webapp:latest  python app.py 5 seconds ago  Up 2 seconds  0.0.0.0:49155->5000/tcp  nostalgic_morse
    
    # ip:hostPort:containerPort (映射指定地址的指定端口)指定映射使用一个特定地址,比如 localhost 地址 127.0.0.1
    docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
    
    # 查看容器信息等
    ➜  big-data docker container inspect 19d
    [
        {
            "Id": "19d7ad3d29cbeaa490759891fd6b24c3b76f72e2e2ab0b4c99b826e69b7bbd39",
            "Created": "2021-01-18T12:30:00.994571758Z",
            "Path": "/bin/bash",
            "Args": [],
            "State": {
                "Status": "running",
                "Running": true,
                "Paused": false,
                "Restarting": false,
                "OOMKilled": false,
                "Dead": false,
                "Pid": 1693,
                "ExitCode": 0,
                "Error": "",
                "StartedAt": "2021-01-19T02:05:17.487554903Z",
                "FinishedAt": "2021-01-18T12:52:17.688931234Z"
            },
            "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
            "ResolvConfPath": "/var/lib/docker/containers/19d7ad3d29cbeaa490759891fd6b24c3b76f72e2e2ab0b4c99b826e69b7bbd39/resolv.conf",
            "HostnamePath": "/var/lib/docker/containers/19d7ad3d29cbeaa490759891fd6b24c3b76f72e2e2ab0b4c99b826e69b7bbd39/hostname",
            "HostsPath": "/var/lib/docker/containers/19d7ad3d29cbeaa490759891fd6b24c3b76f72e2e2ab0b4c99b826e69b7bbd39/hosts",
            "LogPath": "/var/lib/docker/containers/19d7ad3d29cbeaa490759891fd6b24c3b76f72e2e2ab0b4c99b826e69b7bbd39/19d7ad3d29cbeaa490759891fd6b24c3b76f72e2e2ab0b4c99b826e69b7bbd39-json.log",
            "Name": "/charming_engelbart",
            "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/1399c30f19a036d8a981e9c2501b4bfb8f5dc0d4ad17b9f7524aa4e6c4f822e9-init/diff:/var/lib/docker/overlay2/ac2768f1f10cdd6a3a96d526fdba25dd6a50dc8adb9dc9be6e869b2f6d98b726/diff",
                    "MergedDir": "/var/lib/docker/overlay2/1399c30f19a036d8a981e9c2501b4bfb8f5dc0d4ad17b9f7524aa4e6c4f822e9/merged",
                    "UpperDir": "/var/lib/docker/overlay2/1399c30f19a036d8a981e9c2501b4bfb8f5dc0d4ad17b9f7524aa4e6c4f822e9/diff",
                    "WorkDir": "/var/lib/docker/overlay2/1399c30f19a036d8a981e9c2501b4bfb8f5dc0d4ad17b9f7524aa4e6c4f822e9/work"
                },
                "Name": "overlay2"
            },
            "Mounts": [],
            "Config": {
                "Hostname": "19d7ad3d29cb",
                "Domainname": "",
                "User": "",
                "AttachStdin": true,
                "AttachStdout": true,
                "AttachStderr": true,
                "Tty": true,
                "OpenStdin": true,
                "StdinOnce": true,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                ],
                "Cmd": [
                    "/bin/bash"
                ],
                "Image": "centos",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {
                    "org.label-schema.build-date": "20201204",
                    "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": "4730e0d0e8643e8e546ac952ff06337eb6a5e56960659eeb990e032920adcbaf",
                "HairpinMode": false,
                "LinkLocalIPv6Address": "",
                "LinkLocalIPv6PrefixLen": 0,
                "Ports": {},
                "SandboxKey": "/var/run/docker/netns/4730e0d0e864",
                "SecondaryIPAddresses": null,
                "SecondaryIPv6Addresses": null,
                "EndpointID": "65d9cb246361c71aa16c3a4857280110f494fc8d6a68e7dd5a628e83f60c4f19",
                "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": "7f0b4f22bbcd47519c542b9b25d362d0c7e882537638dfd0d55a6fc4900e85c3",
                        "EndpointID": "65d9cb246361c71aa16c3a4857280110f494fc8d6a68e7dd5a628e83f60c4f19",
                        "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
                    }
                }
            }
        }
    ]
    
    # 查看容器内进程
    ➜  big-data docker top 19d
    PID                 USER                TIME                COMMAND
    1693                root                0:00                /bin/bash
    
    

    在生产环境中,为了提高容器的高可用性和安全性,一方面要合理使用资源限制参数来管理容器的资源消耗;另一方面要指定合适的容器重启策略,来自动重启退出的容器。

    docker run -v参数

    格式:-v 本地目录:容器目录 或 -v 容器目录
    示例:docker run -it --rm -v $PWD(本地目录):/python(容器目录) python /bin/bash
    将本机的当前目录,挂载到镜像中的/python目录
    docker run --rm -it -v /home/hyzhou/docker(本地目录):/data(容器目录) ubuntu:14.04 /bin/bash
    将本机的/home/hyzhou/docker,挂载到镜像中的/data目录
    其他参数:
      1. -d: 后台运行容器
      1. -p: 端口映射 5005:5004  指定主机的5005端口映射到容器的5004端口
      1. -it: 以交互模式运行启动容器

    参考

    https://www.cnblogs.com/justdojava/p/11271246.html

    相关文章

      网友评论

          本文标题:docker 记录

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