![]}IUBN7FR@[52{T[)H_RR.png](https://cdn.nlark.com/yuque/0/2021/png/1509749/1626245446594-1286021b-8708-4200-9020-a256c14066fa.png#height=638&id=e0aP6&margin=%5Bobject%20Object%5D&name=%5D%7DIU%60BN7FR%40%5B52%7BT%5B%60%29H_RR.png&originHeight=638&originWidth=900&originalType=binary&ratio=1&size=127730&status=done&style=none&width=900)

docker run

新建容器并启动

  1. docker run [可选参数] image
  2. 参数说明
  3. -name = 'name' 容器名字
  4. -d 后台方式
  5. -it 使用交互模式
  6. -p 指定端口
  7. -p 主机ip:主机端口:容器端口
  8. -p 主机端口:容器端口
  9. -p 容器端口
  10. -d 后台启动
  11. --rm
  12. 用完就删除
  13. [root@node ~]# docker run -it --rm centos # 携带--rm启动
  14. [root@c9b8f1933cdd /]# [root@node ~]# docker ps # 容器还在运行
  15. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  16. c9b8f1933cdd centos "/bin/bash" 19 seconds ago Up 18 seconds angry_curran
  17. [root@node ~]# docker stop c9b8f1933cdd # 停止容器
  18. c9b8f1933cdd
  19. [root@node ~]# docker ps -a # 一旦停止就会自动删除
  20. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

退出容器

  1. [root@study ~]# docker run -it centos # 进入容器
  2. [root@3bfd6d49fc6b /]# exit # 退出(容器停止)
  3. exit

ctrl + p + q 容器不停止的退出

docker ps

显示所有后台运行的容器

  1. [root@study ~]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. -a 列出当前正在运行的容器+历史运行过的容器
  4. -n=个数 显示最近创建的容器
  5. -q 只显示容器编号

docker rm

删除容器,如果正在运行则需要加-f

  1. [root@study home]# docker ps -aq
  2. 3bfd6d49fc6b
  3. 2f45b7f4a1e6
  4. [root@study home]# docker rm -f $(docker ps -aq) # 删除所有
  5. 3bfd6d49fc6b
  6. 2f45b7f4a1e6
  7. [root@study home]# docker ps -aq

删除所有

  1. docker rm -f $(docker ps -aq)

docker start

启动容器

  1. [root@node ~]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 5f4e3a0af845 centos "/bin/bash" 7 minutes ago Up 7 minutes quirky_proskuriakova
  4. [root@node ~]# docker start 5f4e3a0af845 # 启动容器
  5. 5f4e3a0af845
  6. [root@node ~]# docker ps # 查看容器
  7. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  8. 5f4e3a0af845 centos "/bin/bash" 8 minutes ago Up 8 minutes quirky_proskuriakova

docker stop

停止当前正在运行的容器

  1. [root@node ~]# docker stop 5f4e3a0af845
  2. 5f4e3a0af845
  3. [root@node ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

docker kill

强制停止当前容器

docker restart

重启当前容器

docker logs

查看日志

  1. [root@node ~]# docker logs -t -f 301a26bcf80c
  2. -t 时间戳
  3. -f

docker top

查看容器内部进程信息

  1. [root@node ~]# docker top 301a26bcf80c
  2. UID PID PPID C STIME TTY TIME CMD
  3. root 2232 2217 0 15:05 pts/0 00:00:00 /bin/bash

docker inspect

查看容器详细信息

  1. [root@iZ2ze2dmjvkibcf9autjr2Z ~]# docker inspect 302f3b37a9e5
  2. [
  3. {
  4. "Id": "302f3b37a9e5a8d48421794ba630a36938e828eb682f4677800abd87d0e83dea",
  5. "Created": "2021-07-14T06:32:27.585580935Z",
  6. "Path": "/bin/bash",
  7. "Args": [],
  8. "State": {
  9. "Status": "running",
  10. "Running": true,
  11. "Paused": false,
  12. "Restarting": false,
  13. "OOMKilled": false,
  14. "Dead": false,
  15. "Pid": 4123191,
  16. "ExitCode": 0,
  17. "Error": "",
  18. "StartedAt": "2021-07-14T06:32:28.644767521Z",
  19. "FinishedAt": "0001-01-01T00:00:00Z"
  20. },
  21. "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
  22. "ResolvConfPath": "/var/lib/docker/containers/302f3b37a9e5a8d48421794ba630a36938e828eb682f4677800abd87d0e83dea/resolv.conf",
  23. "HostnamePath": "/var/lib/docker/containers/302f3b37a9e5a8d48421794ba630a36938e828eb682f4677800abd87d0e83dea/hostname",
  24. "HostsPath": "/var/lib/docker/containers/302f3b37a9e5a8d48421794ba630a36938e828eb682f4677800abd87d0e83dea/hosts",
  25. "LogPath": "/var/lib/docker/containers/302f3b37a9e5a8d48421794ba630a36938e828eb682f4677800abd87d0e83dea/302f3b37a9e5a8d48421794ba630a36938e828eb682f4677800abd87d0e83dea-json.log",
  26. "Name": "/infallible_rhodes",
  27. "RestartCount": 0,
  28. "Driver": "overlay2",
  29. "Platform": "linux",
  30. "MountLabel": "",
  31. "ProcessLabel": "",
  32. "AppArmorProfile": "",
  33. "ExecIDs": null,
  34. "HostConfig": {
  35. "Binds": null,
  36. "ContainerIDFile": "",
  37. "LogConfig": {
  38. "Type": "json-file",
  39. "Config": {}
  40. },
  41. "NetworkMode": "default",
  42. "PortBindings": {},
  43. "RestartPolicy": {
  44. "Name": "no",
  45. "MaximumRetryCount": 0
  46. },
  47. "AutoRemove": false,
  48. "VolumeDriver": "",
  49. "VolumesFrom": null,
  50. "CapAdd": null,
  51. "CapDrop": null,
  52. "CgroupnsMode": "host",
  53. "Dns": [],
  54. "DnsOptions": [],
  55. "DnsSearch": [],
  56. "ExtraHosts": null,
  57. "GroupAdd": null,
  58. "IpcMode": "private",
  59. "Cgroup": "",
  60. "Links": null,
  61. "OomScoreAdj": 0,
  62. "PidMode": "",
  63. "Privileged": false,
  64. "PublishAllPorts": false,
  65. "ReadonlyRootfs": false,
  66. "SecurityOpt": null,
  67. "UTSMode": "",
  68. "UsernsMode": "",
  69. "ShmSize": 67108864,
  70. "Runtime": "runc",
  71. "ConsoleSize": [
  72. 0,
  73. 0
  74. ],
  75. "Isolation": "",
  76. "CpuShares": 0,
  77. "Memory": 0,
  78. "NanoCpus": 0,
  79. "CgroupParent": "",
  80. "BlkioWeight": 0,
  81. "BlkioWeightDevice": [],
  82. "BlkioDeviceReadBps": null,
  83. "BlkioDeviceWriteBps": null,
  84. "BlkioDeviceReadIOps": null,
  85. "BlkioDeviceWriteIOps": null,
  86. "CpuPeriod": 0,
  87. "CpuQuota": 0,
  88. "CpuRealtimePeriod": 0,
  89. "CpuRealtimeRuntime": 0,
  90. "CpusetCpus": "",
  91. "CpusetMems": "",
  92. "Devices": [],
  93. "DeviceCgroupRules": null,
  94. "DeviceRequests": null,
  95. "KernelMemory": 0,
  96. "KernelMemoryTCP": 0,
  97. "MemoryReservation": 0,
  98. "MemorySwap": 0,
  99. "MemorySwappiness": null,
  100. "OomKillDisable": false,
  101. "PidsLimit": null,
  102. "Ulimits": null,
  103. "CpuCount": 0,
  104. "CpuPercent": 0,
  105. "IOMaximumIOps": 0,
  106. "IOMaximumBandwidth": 0,
  107. "MaskedPaths": [
  108. "/proc/asound",
  109. "/proc/acpi",
  110. "/proc/kcore",
  111. "/proc/keys",
  112. "/proc/latency_stats",
  113. "/proc/timer_list",
  114. "/proc/timer_stats",
  115. "/proc/sched_debug",
  116. "/proc/scsi",
  117. "/sys/firmware"
  118. ],
  119. "ReadonlyPaths": [
  120. "/proc/bus",
  121. "/proc/fs",
  122. "/proc/irq",
  123. "/proc/sys",
  124. "/proc/sysrq-trigger"
  125. ]
  126. },
  127. "GraphDriver": {
  128. "Data": {
  129. "LowerDir": "/var/lib/docker/overlay2/24a92d6f4575a32a61423ca608561a812a8dac4c96f425f9b0d5da7ae8acf468-init/diff:/var/lib/docker/overlay2/3f0339a80ccc278c38628af43b03a6dc94d6262faf0f5b43d7c6fb49a0673f31/diff",
  130. "MergedDir": "/var/lib/docker/overlay2/24a92d6f4575a32a61423ca608561a812a8dac4c96f425f9b0d5da7ae8acf468/merged",
  131. "UpperDir": "/var/lib/docker/overlay2/24a92d6f4575a32a61423ca608561a812a8dac4c96f425f9b0d5da7ae8acf468/diff",
  132. "WorkDir": "/var/lib/docker/overlay2/24a92d6f4575a32a61423ca608561a812a8dac4c96f425f9b0d5da7ae8acf468/work"
  133. },
  134. "Name": "overlay2"
  135. },
  136. "Mounts": [],
  137. "Config": {
  138. "Hostname": "302f3b37a9e5",
  139. "Domainname": "",
  140. "User": "",
  141. "AttachStdin": true,
  142. "AttachStdout": true,
  143. "AttachStderr": true,
  144. "Tty": true,
  145. "OpenStdin": true,
  146. "StdinOnce": true,
  147. "Env": [
  148. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  149. ],
  150. "Cmd": [
  151. "/bin/bash"
  152. ],
  153. "Image": "centos",
  154. "Volumes": null,
  155. "WorkingDir": "",
  156. "Entrypoint": null,
  157. "OnBuild": null,
  158. "Labels": {
  159. "org.label-schema.build-date": "20201204",
  160. "org.label-schema.license": "GPLv2",
  161. "org.label-schema.name": "CentOS Base Image",
  162. "org.label-schema.schema-version": "1.0",
  163. "org.label-schema.vendor": "CentOS"
  164. }
  165. },
  166. "NetworkSettings": {
  167. "Bridge": "",
  168. "SandboxID": "cc357705706859e7f1658add6ad54f290d4570d565d3683e1ac9727786750a0c",
  169. "HairpinMode": false,
  170. "LinkLocalIPv6Address": "",
  171. "LinkLocalIPv6PrefixLen": 0,
  172. "Ports": {},
  173. "SandboxKey": "/var/run/docker/netns/cc3577057068",
  174. "SecondaryIPAddresses": null,
  175. "SecondaryIPv6Addresses": null,
  176. "EndpointID": "b8ffc39701918f35a27aca1def2bd72f649e55c319ae1d103939f3677d279332",
  177. "Gateway": "172.17.0.1",
  178. "GlobalIPv6Address": "",
  179. "GlobalIPv6PrefixLen": 0,
  180. "IPAddress": "172.17.0.2",
  181. "IPPrefixLen": 16,
  182. "IPv6Gateway": "",
  183. "MacAddress": "02:42:ac:11:00:02",
  184. "Networks": {
  185. "bridge": {
  186. "IPAMConfig": null,
  187. "Links": null,
  188. "Aliases": null,
  189. "NetworkID": "aed69dd6cd969bbc58e51597e6057dd11ba5878f6888ecdc4576ca28936c6a61",
  190. "EndpointID": "b8ffc39701918f35a27aca1def2bd72f649e55c319ae1d103939f3677d279332",
  191. "Gateway": "172.17.0.1",
  192. "IPAddress": "172.17.0.2",
  193. "IPPrefixLen": 16,
  194. "IPv6Gateway": "",
  195. "GlobalIPv6Address": "",
  196. "GlobalIPv6PrefixLen": 0,
  197. "MacAddress": "02:42:ac:11:00:02",
  198. "DriverOpts": null
  199. }
  200. }
  201. }
  202. }
  203. ]

进入正在运行的容器

docker exec

打开新的终端

docker attach

打开正在执行的终端

docker cp

把容器内的文件拷贝到终端
即便容器不在运行也可以拷贝

  1. docker cp 容器id:容器路径 宿主机路径
  2. [root@study ~]# docker cp 302f3b37a9e5:/home/test.txt /home/test.txt
  3. [root@study ~]# cd /home/
  4. [root@study home]# ls
  5. hilde redis-6.2.4 redis-6.2.4.tar.gz test.txt

docker commit

将当前的容器打包为镜像

  1. docker commit -a=作者名 -m=附加信息 容器id 发布的镜像名

docker stats

查看容器占用内存的情况