HOME> 国足世界杯夺冠> 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:\