1. 程式人生 > 其它 >docker常用容器整理

docker常用容器整理

擁有映象才可建立容器

新建容器並啟動

docker run [可選引數] image

# 引數說明

--name="Name" # 指定容器名稱
-d            # 後臺方式執行
-it           # 使用互動式方式執行 進入容器檢視內容
-p            # 指定容器的埠 -p 8080:8080
	-p ip:主機埠:容器埠
	-p 主機埠:容器埠(常用)
	-p 容器埠
-P            # 隨機指定埠

# 啟動 並進入容器
C:\Users\48358>docker run -it centos /bin/bash
[root@adf3bc332fe4 /]# # 檢視容器內的centos

# 從容器中退回到主機
[root@adf3bc332fe4 /]# exit
exit

列出所有的執行的容器

docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES


Options:
  -a, --all             顯示所有容器(預設顯示正在執行)
  -f, --filter filter   根據所提供的條件過濾輸出
      --format string   使用Go模板的漂亮列印容器
  -n, --last int        顯示最近建立的容器 (includes all states) (default -1)
  -l, --latest          顯示最新建立的容器 (includes all states)
      --no-trunc        不換行輸出
  -q, --quiet           只顯示容器ID
  -s, --size            顯示檔案總大小

退出容器

exit # 退出容器並停止
Ctrl + P + Q # 容器退出不停止

刪除容器

docker rm 容器id               # 刪除指定的容器 不能刪除正在執行的容器 如果要強制刪除 新增 -f
docker rm -f $(docker ps -aq) # 刪除所有的容器
docker ps -a -q|xargs docker rm # 管道刪除所有的容器

啟動和停止容器的操作

docker start 容器id         # 啟動容器
docker restart 容器id       # 重啟容器
docker stop 容器id          # 停止當前正在執行的容器
docker kill 容器id          # 強制停止當前容器

常用其它命令


後臺啟動容器
# 命令 docker run -d 映象名
docker run -d centos
d706798b2eb215c274e7e6c2a050ccd73a40cb39f1fffd24723282b0e74aeae1

# docker 容器使用後臺執行 就必須要有一個前臺程序  docker發現沒有應用 就會自動停止

檢視日誌
docker logs -f -t --tail 10 容器ID

# 顯示日誌
-tf # 顯示日誌
--tail number # 要顯示的日誌條數


Options:
      --details        顯示日誌的額外資訊
  -f, --follow         跟蹤日誌輸出
      --since string   顯示自時間戳以來的日誌(e.g.
                       2013-01-02T13:23:37Z) or relative (e.g. 42m for 42
                       minutes)
  -n, --tail string    從檔案的末尾顯示的行數
                       (default "all")
  -t, --timestamps     顯示時間
      --until string   顯示在時間戳之前的日誌(e.g.
                       2013-01-02T13:23:37Z) or relative (e.g. 42m for 42
                       minutes)
檢視容器中程序資訊 ps
# 命令 docker top 容器id
docker top 2daf0052c2f5
UID   PID   PPID   C   STIME   TTY   TIME      CMD
root  2020  1999   0   02:31   ?     00:00:00  /bin/sh -c while true;

檢視容器元資料
# 命令 docker inspect 容器id
docker inspect 2daf0052c2f5

[
    {
        "Id": "2daf0052c2f5b5dbd2675291c184ea3fd417cba1e9efaa92f2963a03eab8933d",
        "Created": "2022-03-22T02:31:55.7604498Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",
            "while true;do echo kuangshen;sleep 1;done "
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 2020,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-03-22T02:31:56.189491161Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6",
        "ResolvConfPath": "/var/lib/docker/containers/2daf0052c2f5b5dbd2675291c184ea3fd417cba1e9efaa92f2963a03eab8933d/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/2daf0052c2f5b5dbd2675291c184ea3fd417cba1e9efaa92f2963a03eab8933d/hostname",
        "HostsPath": "/var/lib/docker/containers/2daf0052c2f5b5dbd2675291c184ea3fd417cba1e9efaa92f2963a03eab8933d/hosts",
        "LogPath": "/var/lib/docker/containers/2daf0052c2f5b5dbd2675291c184ea3fd417cba1e9efaa92f2963a03eab8933d/2daf0052c2f5b5dbd2675291c184ea3fd417cba1e9efaa92f2963a03eab8933d-json.log",
        "Name": "/gallant_jang",
        "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": [
                30,
                111
            ],
            "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/55c2fbbe28ef67b490604646acc20cfe8e9dcdd3614e70d17532ec5ded6a6a76-init/diff:/var/lib/docker/overlay2/7007a5df5924dab6a59a88560a58830d37ba41210867033ea6c7417f6f0e6558/diff",
                "MergedDir": "/var/lib/docker/overlay2/55c2fbbe28ef67b490604646acc20cfe8e9dcdd3614e70d17532ec5ded6a6a76/merged",
                "UpperDir": "/var/lib/docker/overlay2/55c2fbbe28ef67b490604646acc20cfe8e9dcdd3614e70d17532ec5ded6a6a76/diff",
                "WorkDir": "/var/lib/docker/overlay2/55c2fbbe28ef67b490604646acc20cfe8e9dcdd3614e70d17532ec5ded6a6a76/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "2daf0052c2f5",
            "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/sh",
                "-c",
                "while true;do echo kuangshen;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": "0de6b4f02189a31bbbb713bb3319666187d6cd08f9c0cf629bfb224761ed00e5",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/0de6b4f02189",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "4d1735d2184da3c647d9d6096c7d4808e040fc013237c67fac75cc7370fb9e43",
            "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": "9ab364c7b94bb33daff9dbad15cae1df845ab4236ef663a711dd0367887e6646",
                    "EndpointID": "4d1735d2184da3c647d9d6096c7d4808e040fc013237c67fac75cc7370fb9e43",
                    "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
                }
            }
        }
    }
]


進入當前正在執行的容器
# 使用場景:通常容器都是使用後臺方式執行的,需要進入容器,修改一些配置

# 方式一
docker exec -it 容器id /bin/bash
# 測試使用
docker exec -it 2daf0052c2f5 /bin/bash


# 方式二
docker attach 容器id
# 測試使用
docker attach 2daf0052c2f5

# docker exec   # 進入容器後開啟一個新的終端,可以在裡面操作
# docker attach # 進入容器正在執行的終端 不會啟動新的程序
從容器內拷貝檔案到主機上

docker cp 容器id:容器路徑 目的地主機路徑

# 測試使用
docker cp 9f45b42fae05:/home/test.java E:\