1. 启动容器
启动容器命令语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
一般除了测试docker是否启动成功会直接使用docker run 镜像名,其他情况一般都是需要启动交互式容器。启动交互式容器的理解是:启动容器后,进入容器进行其他的操作,命令语法:
docker run -it[it:交互式启动] --name=myUbuntu[定义容器名称] ubuntu /bin/bash
[root@VM-4-16-centos ~]# docker run -it ubuntu /bin/bash
root@18a606d7a268:/#
效果可知,返回了一个容器ID,18a606d7a268,目前已经进入了Ubuntu容器的内部。如果想给启动的容器自定义名字,使用--name参数,命令如下
# 对启动的容器进行自定义名称
[root@VM-4-16-centos ~]# docker run -it --name=myUbuntu ubuntu /bin/bash
root@47991bee2374:/#
# 查看运行中的容器 NAMES中的myUbuntu就是刚才命名的容器
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
47991bee2374 ubuntu "/bin/bash" 8 seconds ago Up 7 seconds myUbuntu
18a606d7a268 ubuntu "/bin/bash" 7 minutes ago Up 7 minutes amazing_curie
2. 查询所有正在运行的容器
命令语法:docker ps
# 查询正在运行的容器
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
47991bee2374 ubuntu "/bin/bash" 8 seconds ago Up 7 seconds myUbuntu
18a606d7a268 ubuntu "/bin/bash" 7 minutes ago Up 7 minutes amazing_curie
3. 退出容器
退出容器有两种方式,
- 一种是使用命令exit。使用exit退出容器,容器会停止
- 一种是使用命令ctrl+p+q,使用ctrl+p+q退出容器,容器不会停止。
演示效果
# 启动好两个Ubuntu容器,名字分别是myubuntu1和myubuntu2
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca1d8421f63d ubuntu "/bin/bash" 14 seconds ago Up 13 seconds myubuntu2
358345c971ac ubuntu "/bin/bash" About a minute ago Up About a minute myubuntu1
# 使用exit退出myubuntu1
# 启动命令
[root@VM-4-16-centos ~]# docker run -it --name=myubuntu1 ubuntu /bin/bash
# 退出命令
root@358345c971ac:/# exit
exit
[root@VM-4-16-centos ~]#
# 使用ctrl+p+q退出myubuntu2
# 启动命令
[root@VM-4-16-centos ~]# docker run -it --name=myubuntu2 ubuntu /bin/bash
# 执行ctrl+p+q
root@ca1d8421f63d:/# [root@VM-4-16-centos ~]#
[root@VM-4-16-centos ~]#
# 再次查询运行中的容器 myubuntu2还在运行
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca1d8421f63d ubuntu "/bin/bash" 6 minutes ago Up 6 minutes myubuntu2
[root@VM-4-16-centos ~]#
4. 其他常用容器命令
1、启动已停止容器的命令:docker start 容器ID/容器名称
2、重启容器的命令:docker restart 容器ID/容器名称
3、停止容器的命令:docker stop 容器ID/容器名称
4、强制停止容器的命令:docker kill 容器ID/容器名称
启动容器:
# 查看最近的3个容器 myubuntu1是停止状态
[root@VM-4-16-centos ~]# docker ps -n 3
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca1d8421f63d ubuntu "/bin/bash" 10 minutes ago Up 10 minutes myubuntu2
358345c971ac ubuntu "/bin/bash" 11 minutes ago Exited (0) 8 minutes ago myubuntu1
47991bee2374 ubuntu "/bin/bash" 31 minutes ago Exited (0) 18 minutes ago myUbuntu
# 启动myubuntu1,通过容器ID启动,启动后返回容器ID并后台运行了
[root@VM-4-16-centos ~]# docker start 358345c971ac
358345c971ac
# myubuntu1已经是运行状态了
[root@VM-4-16-centos ~]# docker ps -n 3
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca1d8421f63d ubuntu "/bin/bash" 11 minutes ago Up 11 minutes myubuntu2
358345c971ac ubuntu "/bin/bash" 13 minutes ago Up 7 seconds myubuntu1
47991bee2374 ubuntu "/bin/bash" 32 minutes ago Exited (0) 19 minutes ago myUbuntu
重启容器:
[root@VM-4-16-centos ~]# docker restart 358345c971ac
358345c971ac
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca1d8421f63d ubuntu "/bin/bash" 17 minutes ago Up 17 minutes myubuntu2
358345c971ac ubuntu "/bin/bash" 19 minutes ago Up 4 seconds myubuntu1
停止容器:
[root@VM-4-16-centos ~]# docker stop ca1d8421f63d
ca1d8421f63d
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
358345c971ac ubuntu "/bin/bash" 19 minutes ago Up 41 seconds myubuntu1
强制停止容器:
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca1d8421f63d ubuntu "/bin/bash" 20 minutes ago Up 6 seconds myubuntu2
358345c971ac ubuntu "/bin/bash" 22 minutes ago Up 3 minutes myubuntu1
# 强制停止容器
[root@VM-4-16-centos ~]# docker kill ca1d8421f63d
ca1d8421f63d
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
358345c971ac ubuntu "/bin/bash" 22 minutes ago Up 3 minutes myubuntu1
[root@VM-4-16-centos ~]#
5. 删除已停止容器
该命令只能删除已经停止的容器,如果删除正在运行的容器会报错,命令演示
# 查看容器列表
[root@VM-4-16-centos ~]# docker ps -n5
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca1d8421f63d ubuntu "/bin/bash" 31 minutes ago Exited (137) 10 minutes ago myubuntu2
358345c971ac ubuntu "/bin/bash" 32 minutes ago Up 13 minutes myubuntu1
47991bee2374 ubuntu "/bin/bash" 52 minutes ago Exited (0) 39 minutes ago myUbuntu
18a606d7a268 ubuntu "/bin/bash" 59 minutes ago Exited (0) 39 minutes ago amazing_curie
162f4d8faa4b feb5d9fea6a5 "/hello" 3 hours ago Exited (0) 3 hours ago musing_shirley
# 该容器正在运行,删除不成功,提示需要停止容器再删除
[root@VM-4-16-centos ~]# docker rm 358345c971ac
Error response from daemon: You cannot remove a running container 358345c971ac19c56c9e5dfe79199a5fe2e0a0d16e689c9158f88118f9698f38. Stop the container before attempting removal or force remove
# 删除已停止的容器,删除成功,返回容器id
[root@VM-4-16-centos ~]# docker rm 18a606d7a268
18a606d7a268
# 删除的容器就没有了
[root@VM-4-16-centos ~]# docker ps -n5
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca1d8421f63d ubuntu "/bin/bash" 33 minutes ago Exited (137) 12 minutes ago myubuntu2
358345c971ac ubuntu "/bin/bash" 35 minutes ago Up 15 minutes myubuntu1
47991bee2374 ubuntu "/bin/bash" 54 minutes ago Exited (0) 41 minutes ago myUbuntu
162f4d8faa4b feb5d9fea6a5 "/hello" 3 hours ago Exited (0) 3 hours ago musing_shirley
4d6b5f5c2646 feb5d9fea6a5 "/hello" 7 hours ago Exited (0) 7 hours ago zen_mcclintock
[root@VM-4-16-centos ~]#
6. 启动后台运行的守护式容器
命令语法:docker run -d 镜像名称
[root@VM-4-16-centos ~]# docker run -d --name=myRedis redis:6.0.8
e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e140deede49a redis:6.0.8 "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 6379/tcp myRedis
358345c971ac ubuntu "/bin/bash" 16 hours ago Up 15 hours myubuntu1
Redis后台运行成功
7. 查看容器日志
命令语法:docker logs 容器ID
# 查看docker容器启动日志
[root@VM-4-16-centos ~]# docker logs e140deede49a
1:C 15 May 2022 01:22:42.714 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 15 May 2022 01:22:42.714 # Redis version=6.0.8, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 15 May 2022 01:22:42.714 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 15 May 2022 01:22:42.715 * Running mode=standalone, port=6379.
1:M 15 May 2022 01:22:42.715 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 15 May 2022 01:22:42.715 # Server initialized
1:M 15 May 2022 01:22:42.715 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 15 May 2022 01:22:42.715 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo madvise > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled (set to 'madvise' or 'never').
1:M 15 May 2022 01:22:42.716 * Ready to accept connections
8. 查询容器的内部运行的进程
查询docker容器内部运行了哪些进程,命令语法:docker top 容器ID
[root@VM-4-16-centos ~]# docker top e140deede49a
UID PID PPID C STIME TTY TIME CMD
polkitd 2964 2944 0 09:22 ? 00:00:00 redis-server *:6379
9. 查询容器内部细节
查询容器的内部细节信息,命令语法:docker inspect 容器ID
# 查询容器内部信息
[root@VM-4-16-centos ~]# docker inspect e140deede49a
[
{
"Id": "e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d",
"Created": "2022-05-15T01:22:42.393102357Z",
"Path": "docker-entrypoint.sh",
"Args": [
"redis-server"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 2964,
"ExitCode": 0,
"Error": "",
"StartedAt": "2022-05-15T01:22:42.70136925Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:16ecd277293476392b71021cdd585c40ad68f4a7488752eede95928735e39df4",
"ResolvConfPath": "/var/lib/docker/containers/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d/hostname",
"HostsPath": "/var/lib/docker/containers/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d/hosts",
"LogPath": "/var/lib/docker/containers/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d-json.log",
"Name": "/myRedis",
"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": [
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/c81e95ddc560ddc1980bb10fa9a74fa4da802e10e6f2da6244452e431a9d5aef-init/diff:/var/lib/docker/overlay2/987872a6c6e35ffc1954faa7c5a07225aad3db0decca0651f8d56d597876a239/diff:/var/lib/docker/overlay2/348b76f9b6aff0dbcdbc1ca98065567c8d9478ce29d56a3a035f7e06364a3aaf/diff:/var/lib/docker/overlay2/54373156d6f3599e09463e224d391311920bf6d9d8a273a961ef99e4d5080ebd/diff:/var/lib/docker/overlay2/cc7078baf75a32c41a6a7cf7c0a92833546e46e4a526d07a1e7100815358329a/diff:/var/lib/docker/overlay2/6095c743f92488480597267dae2076a8b6987876f660710365e86c4c0c1c1d52/diff:/var/lib/docker/overlay2/057aa98fc481c16b4d796f21e0d6385dee4d944f66d97c91b70ac8b338a8fe18/diff",
"MergedDir": "/var/lib/docker/overlay2/c81e95ddc560ddc1980bb10fa9a74fa4da802e10e6f2da6244452e431a9d5aef/merged",
"UpperDir": "/var/lib/docker/overlay2/c81e95ddc560ddc1980bb10fa9a74fa4da802e10e6f2da6244452e431a9d5aef/diff",
"WorkDir": "/var/lib/docker/overlay2/c81e95ddc560ddc1980bb10fa9a74fa4da802e10e6f2da6244452e431a9d5aef/work"
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "volume",
"Name": "45689df532854ebb646a9168bcf15df09b1394ab425b8983cac06e5e8277b49a",
"Source": "/var/lib/docker/volumes/45689df532854ebb646a9168bcf15df09b1394ab425b8983cac06e5e8277b49a/_data",
"Destination": "/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
"Config": {
"Hostname": "e140deede49a",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"6379/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GOSU_VERSION=1.12",
"REDIS_VERSION=6.0.8",
"REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.0.8.tar.gz",
"REDIS_DOWNLOAD_SHA=04fa1fddc39bd1aecb6739dd5dd73858a3515b427acd1e2947a66dadce868d68"
],
"Cmd": [
"redis-server"
],
"Image": "redis:6.0.8",
"Volumes": {
"/data": {}
},
"WorkingDir": "/data",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "ddcc3791022b15b72015f13242c58127ca014ab2450a0477542c34c0522aab74",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"6379/tcp": null
},
"SandboxKey": "/var/run/docker/netns/ddcc3791022b",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "b0399a863b18fa46edfd442a5e1863e92b6bd25a4343b3e3277f9cf93dc12b77",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
[root@VM-4-16-centos ~]# docker inspect e140deede49a
[
{
"Id": "e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d",
"Created": "2022-05-15T01:22:42.393102357Z",
"Path": "docker-entrypoint.sh",
"Args": [
"redis-server"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 2964,
"ExitCode": 0,
"Error": "",
"StartedAt": "2022-05-15T01:22:42.70136925Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:16ecd277293476392b71021cdd585c40ad68f4a7488752eede95928735e39df4",
"ResolvConfPath": "/var/lib/docker/containers/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d/hostname",
"HostsPath": "/var/lib/docker/containers/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d/hosts",
"LogPath": "/var/lib/docker/containers/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d/e140deede49aec77b37c7c3466c1a96d32b40545491be4dfed7c5e928b2c7d5d-json.log",
"Name": "/myRedis",
"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": [
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/c81e95ddc560ddc1980bb10fa9a74fa4da802e10e6f2da6244452e431a9d5aef-init/diff:/var/lib/docker/overlay2/987872a6c6e35ffc1954faa7c5a07225aad3db0decca0651f8d56d597876a239/diff:/var/lib/docker/overlay2/348b76f9b6aff0dbcdbc1ca98065567c8d9478ce29d56a3a035f7e06364a3aaf/diff:/var/lib/docker/overlay2/54373156d6f3599e09463e224d391311920bf6d9d8a273a961ef99e4d5080ebd/diff:/var/lib/docker/overlay2/cc7078baf75a32c41a6a7cf7c0a92833546e46e4a526d07a1e7100815358329a/diff:/var/lib/docker/overlay2/6095c743f92488480597267dae2076a8b6987876f660710365e86c4c0c1c1d52/diff:/var/lib/docker/overlay2/057aa98fc481c16b4d796f21e0d6385dee4d944f66d97c91b70ac8b338a8fe18/diff",
"MergedDir": "/var/lib/docker/overlay2/c81e95ddc560ddc1980bb10fa9a74fa4da802e10e6f2da6244452e431a9d5aef/merged",
"UpperDir": "/var/lib/docker/overlay2/c81e95ddc560ddc1980bb10fa9a74fa4da802e10e6f2da6244452e431a9d5aef/diff",
"WorkDir": "/var/lib/docker/overlay2/c81e95ddc560ddc1980bb10fa9a74fa4da802e10e6f2da6244452e431a9d5aef/work"
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "volume",
"Name": "45689df532854ebb646a9168bcf15df09b1394ab425b8983cac06e5e8277b49a",
"Source": "/var/lib/docker/volumes/45689df532854ebb646a9168bcf15df09b1394ab425b8983cac06e5e8277b49a/_data",
"Destination": "/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
"Config": {
"Hostname": "e140deede49a",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"6379/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GOSU_VERSION=1.12",
"REDIS_VERSION=6.0.8",
"REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.0.8.tar.gz",
"REDIS_DOWNLOAD_SHA=04fa1fddc39bd1aecb6739dd5dd73858a3515b427acd1e2947a66dadce868d68"
],
"Cmd": [
"redis-server"
],
"Image": "redis:6.0.8",
"Volumes": {
"/data": {}
},
"WorkingDir": "/data",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "ddcc3791022b15b72015f13242c58127ca014ab2450a0477542c34c0522aab74",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"6379/tcp": null
},
"SandboxKey": "/var/run/docker/netns/ddcc3791022b",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "b0399a863b18fa46edfd442a5e1863e92b6bd25a4343b3e3277f9cf93dc12b77",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:03",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "c84fb77238a08819accecb1cf4a456b63333aca31e4548d5dcbd417b935abca0",
"EndpointID": "b0399a863b18fa46edfd442a5e1863e92b6bd25a4343b3e3277f9cf93dc12b77",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03",
"DriverOpts": null
}
}
}
}
]
10. 进入正在运行的容器并以命令行交互(重点)
两种语法:
1. docker exec -it 容器ID bashShell[/bin/bash]
2. docker attach 容器ID
exec命令:
[root@VM-4-16-centos ~]# docker exec -it e140deede49a /bin/bash
root@e140deede49a:/data# exit
exit
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e140deede49a redis:6.0.8 "docker-entrypoint.s…" 28 minutes ago Up 28 minutes 6379/tcp myRedis
attach命令:
[root@VM-4-16-centos ~]# docker attach 358345c971ac
root@358345c971ac:/# exit
exit
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e140deede49a redis:6.0.8 "docker-entrypoint.s…" 27 minutes ago Up 27 minutes 6379/tcp myRedis
[root@VM-4-16-centos ~]#
两者命令效果上对比可知,exec命令进入容器后退出,容器还在运行。使用attach命令进入容器退出后,容器停止,推荐使用exec命令。
使用redis演示exec命令
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e140deede49a redis:6.0.8 "docker-entrypoint.s…" 46 minutes ago Up 46 minutes 6379/tcp myRedis
[root@VM-4-16-centos ~]# docker exec -it e140deede49a /bin/bash
root@e140deede49a:/data# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
正常情况下,我们都是使用 docker run -d --name=xxxx 镜像名称 /bin/bash 来创建一个后台运行的守护式容器,然后通过 docker exec -it 容器ID /bin/bash
11. 从容器内复制文件到主机上(宿主机)
语法命令:docker cp 容器ID:容器内路径 宿主机路径。
# 拷贝文件
[root@VM-4-16-centos ~]# docker cp d1db2a8991a0:/tmp/test.txt /tmp/text.txt
# 进入查看
[root@VM-4-16-centos ~]# cd /tmp
[root@VM-4-16-centos tmp]# ls
cpuidle_support.log nv_gpu_conf.log text.txt ydeye_install.log
cvm_init.log setRps.log virtio_blk_affinity.log
net_affinity.log stargate.lock virtio_blk_affinity_udev.log
nv_driver_install.log systemd-private-d44a92764a4d472ca38fb0e6faf14ce8-ntpd.service-BgHfCV yddaemon.log
[root@VM-4-16-centos tmp]#
12. 导入导出容器(重点)
作用:用于备份
1. 导出命令:docker export 容器ID > 文件名.tar
[root@VM-4-16-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1db2a8991a0 ubuntu "/bin/bash" 16 minutes ago Up 16 minutes myubuntu4
e140deede49a redis:6.0.8 "docker-entrypoint.s…" 2 hours ago Up 2 hours 6379/tcp myRedis
# 导出命令
[root@VM-4-16-centos ~]# docker export d1db2a8991a0 > ubuntu.tar
[root@VM-4-16-centos ~]# ls
CentOS-Base.repo ubuntu.tar
[root@VM-4-16-centos ~]#
2. 导入命令:cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号 镜像用户名可不写
# 导入宿主机的tar
[root@VM-4-16-centos ~]# cat ubuntu.tar | docker import - ubuntu:1.0.0
# 导入的images
[root@VM-4-16-centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 1.0.0 d2c006db5a92 2 minutes ago 77.8MB
redis latest 1ca2c2a1b554 3 days ago 117MB
ubuntu latest d2e4e1f51132 2 weeks ago 77.8MB
centos 7 eeb6ee3f44bd 8 months ago 204MB
redis 6.0.8 16ecd2772934 18 months ago 104MB
结合上一篇的镜像命令和本文的容器命令,可以汇总为一张图,图是百度查的,觉得很形象,就借鉴了。
以上就是docker常用命令汇总了!!!