新建容器并启动

  1. # 命令 docker run [参数] [镜像名]
  2. # 参数
  3. --name="Name" 容器名字,用来区分容器
  4. -d 后台运行容器
  5. -it 交互运行容器,进入容器操作
  6. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker run -it centos
  7. [root@b370c8b61809 /]# ls
  8. bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
  9. -p 指定容器端口 -p ip:8080
  10. -p 主机端口:容器端口
  11. -p 容器端口
  12. -p ip:主机端口:容器端口
  13. -P 随机指定端口

查看正在运行的容器

  1. # 命令 docker ps [参数] #列出当前正在运行的容器
  2. #参数
  3. -a 列出当前正在运行的容器+历史运行过的
  4. -n=?
  5. -q 显示运行容器编号
  6. -aq 显示所有容器编号

退出容器

  1. exit 直接退出
  2. Ctrl + p +q 容器不停止退出

删除容器

  1. docker rm 容器id 删除指定容器,不能删除正在运行的容器,须使用rm -f 容器id
  2. docker rm -f $(docker ps -aq) 删除所有容器

启动和停止容器

  1. docker start 容器id 启动容器
  2. docker restart 容器id 重启容器
  3. docker stop 容器id 停止当前运行的容器
  4. docker kill 容器id 强制停止当前运行的容器

其他命令

后台启动容器

  1. # 命令 docker run -d 镜像名
  2. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker ps
  3. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  4. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker run -d centos
  5. 4207c57ac3927d98a88f86e490c692cdfb0827cef4da189463ea5732f89f0067
  6. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker ps
  7. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  8. # 问题dockee ps发现 centos停止了
  9. # 常见的坑:docker 容器使用后台运行,就必须要有一个前台的进程,docker发现没有应用就自动停止

查看日志

  1. # 命令 docker logs -tf --tail 容器id
  2. # 编写一段脚本
  3. ##docker run -d centos /bin/sh -c "while ture;do echo wangzheng;sleep 1;done"
  4. # 运行centos输入命令
  5. # 显示日志
  6. -tf # 显示日志
  7. --tail [number] #显示日志条数
  8. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker logs -tf --tail 10 cd8a8ae2af19
  9. 2021-08-19T01:53:24.808086676Z [root@cd8a8ae2af19 /]# cd /bin/sh
  10. 2021-08-19T01:53:24.808136709Z bash: cd: /bin/sh: Not a directory
  11. 2021-08-19T01:53:53.387582347Z [root@cd8a8ae2af19 /]# sh -c "while ture;do echo wangzheng;sleep 1;done"
  12. 2021-08-19T01:53:53.387916521Z sh: ture: command not found
  13. [root@cd8a8ae2af19 /]# exit

查看容器进程信息

  1. # 命令 docker top 容器id
  2. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker top 86f21f951e5d
  3. UID PID PPID C STIME TTY TIME CMD
  4. root 23860 23828 0 10:01 pts/0 00:00:00 /bin/bash

查看镜像元数据

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

进入当前正在运行的容器

  1. # 通常容器都是后台运行,我们需要进入容器,进行操作
  2. # 方式一
  3. # 命令 docker exec -it 容器id /bin/bash
  4. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker exec -it 86f21f951e5d /bin/bash
  5. [root@86f21f951e5d /]#
  6. # 方式二
  7. # 命令 docker attach 容器id
  8. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker attach 86f21f951e5d
  9. [root@86f21f951e5d /]#
  10. 区别:
  11. docker exec 进入一个新的终端
  12. docker attac 进入正在运行的终端

从容器中拷贝文件

  1. # 命令 docker cp 容器id:容器内路径 目的主机路径
  2. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker attach 86f21f951e5d
  3. [root@86f21f951e5d home]# ls
  4. [root@86f21f951e5d home]# touch wangzheng.py
  5. [root@86f21f951e5d home]# ls
  6. wangzheng.py
  7. [root@86f21f951e5d home]# exit
  8. exit
  9. [root@izbp1g2kp3kgefvmrhy0moz ~]# docker cp 86f21f951e5d:/home/wangzheng.py /home
  10. [root@izbp1g2kp3kgefvmrhy0moz ~]# cd /home
  11. [root@izbp1g2kp3kgefvmrhy0moz home]# ls
  12. admin wangzheng.py