1. 常用命令

    docker version    # 显示docker的版本信息
    docker info # 显示docker的系统信息,包括镜像和容器的数量
    docker 命令 --help # 帮助命令,中间的"命令"替换为某个具体的指令,比如"image"
  2. 帮助文档地址

  3. 镜像命令

    • docker images:查看所有本地的主机上的镜像

      [root@iZwz908j8pbqd86doyrez5Z ~]# docker images
      REPOSITORY TAG IMAGE ID CREATED SIZE
      hello-world latest bf756fb1ae65 8 months ago 13.3kB #解释:
      REPOSITORY 镜像的仓库源
      TAG 镜像的标签
      IMAGE ID 镜像的id
      CREATED 镜像的创建事件
      SIZE 镜像的大小 # 可选项
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker images --help Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images Options:
      -a, --all # 列出所有镜像
      -q, --quiet # 只显示镜像的id #列出所有镜像的id
      docker images -aq
    • docker search:搜索镜像

      [root@iZwz908j8pbqd86doyrez5Z ~]# docker search mysql
      NAME DESCRIPTION STARS OFFICIAL AUTOMATED
      mysql MySQL is a widely used, open-source relation… 9945 [OK]
      mariadb MariaDB is a community-developed fork of MyS… 3638 [OK] Options:
      -f, --filter filter Filter output based on conditions provided #只显示收藏数量在3000以上的
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker search mysql --filter=STARS=3000
      NAME DESCRIPTION STARS OFFICIAL AUTOMATED
      mysql MySQL is a widely used, open-source relation… 9945 [OK]
      mariadb MariaDB is a community-developed fork of MyS… 3639 [OK]

      注:这里的内容从本质上说和在hub.docker上搜索的结果是一样的

    • docker pull:下载镜像

      #下载镜像 docker pull 镜像名[:tag](tag是版本号)
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker pull mysql
      Using default tag: latest 默认是最新版的
      latest: Pulling from library/mysql
      bf5952930446: Pull complete #分层下载,docker images核心 联合文件系统
      8254623a9871: Pull complete
      938e3e06dac4: Pull complete
      ea28ebf28884: Pull complete
      f3cef38785c2: Pull complete
      894f9792565a: Pull complete
      1d8a57523420: Pull complete
      6c676912929f: Pull complete
      3cdd8ff735c9: Pull complete
      4c70cbe51682: Pull complete
      e21cf0cb4dc3: Pull complete
      28c36cd3abcc: Pull complete
      Digest: sha256:6ded54eb1e5d048d8310321ba7b92587e9eadc83b519165b70bbe47e4046e76a
      Status: Downloaded newer image for mysql:latest
      docker.io/library/mysql:latest 真实地址 #由真实地址得出的两个等价命令
      docker pull mysql
      docker pull docker.io/library/mysql:latest #指定版本下载(版本可查看hub.docker.com)
      docker mysql:5.7

      注:可以用的版本号应该来自

    • docker rmi:删除镜像

      #根据id删除镜像
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker rmi -f 镜像id
      #根据id删除多个镜像
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker rmi -f 镜像id 镜像id
      #删除所有镜像
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker rmi -f $(docker images -aq)
  4. 容器命令

    说明:要现有一个镜像才能创建容器,这里以一个centos镜像测试学习

    docker pull centos
    • docker run[可选参数] image:新建容器并启动

      #参数说明
      --name="Name" #给容器取名
      -d #以后台方式运行,类似于nohup
      -it #使用交互方式运行,进入容器查看内容
      -p #指定容器的端口 -p 8080:8080
      -p #指定随机端口 #测试
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker run -it centos /bin/bash #以bash的形式运行指令
      [root@2dc2e3d5eb90 /]# ls #由前缀可以看出已经进入了容器
      bin etc lib lost+found mnt proc run srv tmp var
      dev home lib64 media opt root sbin sys usr
      [root@2dc2e3d5eb90 /]# exit #退出容器的命令
      exit
    • docker ps:查看正在运行的容器

      #参数说明
      -a #all,查看所有历史上运行过的容器
      -n=? #显示最近创建的n个容器
      -q #与docker images命令的附加-q参数相同,即只显示容器id #测试:
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker ps -a
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      2dc2e3d5eb90 centos "/bin/bash" 4 minutes ago Exited (0) 3 minutes ago inspiring_gagarin
      5dcce85f2112 bf756fb1ae65 "/hello" 12 hours ago Exited (0) 12 hours ago distracted_lederberg
      5adf71025107 bf756fb1ae65 "/hello" 13 hours ago Exited (0) 13 hours ago busy_mahavira
    • 退出容器

      exit           #停止容器并退出
      ctrl + P + Q #容器不停止退出
    • 删除容器

      docker rm 容器id                  #删除指定id的容器,且该容器必须为已经停止的容器
      docker rm -f 容器id #删除指定id的容器,且该容器可以为已经运行的容器
      docker rm -f $(docker ps -aq) #删除所有的容器
      docker ps -a -q|xargs docker rm #删除所有的容器

      注:完全退出容器(如:使用exit命令)并不代表就是将这个容器删了,使用docker ps -aq命令还是可以查看到它们.想要真的删除还是要使用docker rm命令

    • 启动和停止容器的操作

      docker start 容器id    #启动容器
      docker restart 容器id #重启容器
      docker stop 容器id #停止当前正在运行的容器(让容器自己停止)
      docker kill 容器id #强制停止当前容器(还有外部手段强制容器停止)
  5. 常用其它命令

    • docker run -d 镜像名:后台启动容器

      注:启动完成后,运行docker ps,会发现根本搜寻不到,因为容器启动后必须要有执行的任务,否则docker发现没有应用,就会自动停止

    • docker log:查看日志

      docker logs -f -t --tail 日志条数 容器id    #查看日志
      
      #测试
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker logs -f -t --tail 10 267946578eae
      2020-09-10T01:52:34.002346246Z [root@267946578eae /]# exit
      2020-09-10T01:52:34.002385790Z exit
      2020-09-10T01:53:35.193824155Z [root@267946578eae /]# exit
    • docker top 容器id:查看容器中进程信息(该容器需要为运行状态)

      [root@iZwz908j8pbqd86doyrez5Z ~]# docker ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker start 267946578eae
      267946578eae
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      267946578eae centos "/bin/bash" 28 minutes ago Up 4 seconds zealous_hawking
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker top 267946578eae
      UID PID PPID C STIME TTY TIME CMD
      root 6854 6836 0 10:20 pts/0 00:00:00 /bin/bash
    • docker inspect 容器id:查看元数据

      #测试
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker inspect 267946578eae
      [
      {
      "Id": "267946578eaefdc9065879219c72b656f3cf874cb1bc99af005e115597310032", #id的全路径
      "Created": "2020-09-10T01:52:28.101148498Z",
      "Path": "/bin/bash",
      "Args": [],
      "State": {
      "Status": "running", #状态:正在运行
      "Running": true,
      "Paused": false,
      "Restarting": false,
      "OOMKilled": false,
      "Dead": false,
      "Pid": 6854,
      "ExitCode": 0,
      "Error": "",
      "StartedAt": "2020-09-10T02:20:30.117511469Z",
      "FinishedAt": "2020-09-10T01:53:35.203909156Z"
      },
      "Image": "sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566", #镜像来源
      "ResolvConfPath": "/var/lib/docker/containers/267946578eaefdc9065879219c72b656f3cf874cb1bc99af005e115597310032/resolv.conf",
      "HostnamePath": "/var/lib/docker/containers/267946578eaefdc9065879219c72b656f3cf874cb1bc99af005e115597310032/hostname",
      "HostsPath": "/var/lib/docker/containers/267946578eaefdc9065879219c72b656f3cf874cb1bc99af005e115597310032/hosts",
      "LogPath": "/var/lib/docker/containers/267946578eaefdc9065879219c72b656f3cf874cb1bc99af005e115597310032/267946578eaefdc9065879219c72b656f3cf874cb1bc99af005e115597310032-json.log",
      "Name": "/zealous_hawking",
      "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,
      "Capabilities": null,
      "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/2cfa27ccb7989cc146409f7d5c11960fb676fda394d1d7ca32019d3b9d560a8a-init/diff:/var/lib/docker/overlay2/fe1013e525ea3b1dae1b9f612d861ff90165ff5dbb377e81ec4758166f07f00a/diff",
      "MergedDir": "/var/lib/docker/overlay2/2cfa27ccb7989cc146409f7d5c11960fb676fda394d1d7ca32019d3b9d560a8a/merged",
      "UpperDir": "/var/lib/docker/overlay2/2cfa27ccb7989cc146409f7d5c11960fb676fda394d1d7ca32019d3b9d560a8a/diff",
      "WorkDir": "/var/lib/docker/overlay2/2cfa27ccb7989cc146409f7d5c11960fb676fda394d1d7ca32019d3b9d560a8a/work"
      },
      "Name": "overlay2"
      },
      "Mounts": [],
      "Config": {
      "Hostname": "267946578eae",
      "Domainname": "",
      "User": "",
      "AttachStdin": true,
      "AttachStdout": true,
      "AttachStderr": true,
      "Tty": true,
      "OpenStdin": true,
      "StdinOnce": true,
      "Env": [
      "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      ],
      "Cmd": [
      "/bin/bash"
      ],
      "Image": "centos",
      "Volumes": null,
      "WorkingDir": "",
      "Entrypoint": null,
      "OnBuild": null,
      "Labels": {
      "org.label-schema.build-date": "20200809",
      "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": "351a0522bad7713d555a0fda889b3c43396a4f9aa49a794c2947401227a83823",
      "HairpinMode": false,
      "LinkLocalIPv6Address": "",
      "LinkLocalIPv6PrefixLen": 0,
      "Ports": {},
      "SandboxKey": "/var/run/docker/netns/351a0522bad7",
      "SecondaryIPAddresses": null,
      "SecondaryIPv6Addresses": null,
      "EndpointID": "399a6f23e15b8c7c6d198d85b9b2ea02ab92950aff1f726a63555b588289128b",
      "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": "e33b6b9e8a86c82a5eeb03578b023317ed6aebed6d32dd8d04a5b138ffea5dfe",
      "EndpointID": "399a6f23e15b8c7c6d198d85b9b2ea02ab92950aff1f726a63555b588289128b",
      "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
      }
      }
      }
      }
      ]
    • 进入当前正在运行的容器

      #我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
      
      #方式1
      docker exec -it 容器id /bin/bash #以交互方式,通过bash/sh命令行进入 #测试
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      267946578eae centos "/bin/bash" 41 minutes ago Up 13 minutes zealous_hawking
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker exec -it 267946578eae /bin/bash
      [root@267946578eae /]# ps -ef
      UID PID PPID C STIME TTY TIME CMD
      root 1 0 0 02:20 pts/0 00:00:00 /bin/bash
      root 14 0 0 02:34 pts/1 00:00:00 /bin/bash
      root 27 14 0 02:34 pts/1 00:00:00 ps -ef #方式二
      docker attach 容器id #与第一种方式的区别,是进入了一个新的命令行,而不是开启了一个新的窗口 #区别:
      #docker exec:相当于打开了一个新的终端
      #docker attach:进入容器正在执行的终端,且不会启动新的进程!!
    • 从容器内拷贝文件到主机上

      #将容器内的文件拷贝到主机
      docker cp 容器id:容器内路径 目的的主机路径 #test
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      267946578eae centos "/bin/bash" 59 minutes ago Up 31 minutes zealous_hawking
      [root@iZwz908j8pbqd86doyrez5Z ~]# docker attach 267946578eae
      [root@267946578eae /]# ls
      bin etc lib lost+found mnt proc run srv tmp var
      dev home lib64 media opt root sbin sys usr
      [root@267946578eae /]# pwd
      /
      [root@267946578eae /]# touch test.java #在容器中创建文件
      [root@267946578eae /]# ls
      bin etc lib lost+found mnt proc run srv test.java usr
      dev home lib64 media opt root sbin sys tmp var
      [root@267946578eae /]# exit
      exit
      [root@iZwz908j8pbqd86doyrez5Z ~]# ls
      aa.sh file_clear.sh for.sh load_data.sh
      [root@iZwz908j8pbqd86doyrez5Z ~]# pwd
      /root
      [root@iZwz908j8pbqd86doyrez5Z ~]# mkdir test #创建test文件夹,用来存放copy过来的文件
      [root@iZwz908j8pbqd86doyrez5Z ~]# ls
      aa.sh file_clear.sh for.sh load_data.sh test
      [root@iZwz908j8pbqd86doyrez5Z /]# docker cp 267946578eae:/test.java /root/test #拷贝
      [root@iZwz908j8pbqd86doyrez5Z /]# cd /root/test
      [root@iZwz908j8pbqd86doyrez5Z test]# ls
      test.java #拷贝是一个手动过程,未来我们使用-v卷的技术,可以实现自动同步
  6. 联系图

Docker——常用命令的更多相关文章

  1. 关于Docker 常用命令

    Docker 常用命令 分类列一下常用的CLI命令 仓库相关 search/ pull / push / login etc. 例:docker pull ubuntu 从仓库下载ubuntuimag ...

  2. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  3. Docker常用命令(二)

    Docker常用命令 查看Docker所有正在运行的容器 docker ps 查看Docker已退出的容器 docker ps -a 查看Docker所有镜像 docker images 删除镜像 删 ...

  4. Docker应用二:docker常用命令介绍

     Docker常用命令使用介绍 docker中常用的命令: 1.docker search image_name:搜查镜像 2.docker pull image_name:从镜像库中拉去镜像 3.d ...

  5. Docker常用命令汇总,和常用操作举例

    Docker命令 docker 常用命令如下 管理命令: container 管理容器 image 管理镜像 network 管理网络 node 管理Swarm节点 plugin 管理插件 secre ...

  6. 1021 docker常用命令和Jenkins搭建

    docker常用命令 1.镜像管理 docker pull (镜像名) # 默认拉取最新版本的镜像 docker pull (镜像名:版本号) #拉取指定版本的镜像 docker push (镜像名) ...

  7. Docker 常用命令——镜像

    Docker 常用命令 帮助命令 docker version    --版本信息 docker info       --详细信息 docker --help     --帮助 镜像命令 1.doc ...

  8. docker 常用 命令

    http://os.51cto.com/art/201409/451117.htm 2.1 在测试机启动容器,安装ssh docker run -i -t ubuntu /bin/bash #此方式运 ...

  9. Docker 常用命令总结

    Docker 常用命令总结   回到顶部 镜像相关 搜索 docker search *image_name* 下载 docker pull *image_name* 查看 docker images ...

  10. 宿主机 && docker 常用命令

    宿主机 && docker 常用命令 1.如果你想快速发现在该主机上使用最多资源的容器(或是最近的所有systemd服务),我推荐systemd-cgtop命令: 2.

随机推荐

  1. 啥叫IP地址及子网掩码?

    啥叫IP地址及子网掩码 ??? 1.IP地址的定义及分类 1.1IP地址的定义 1.2IP地址的分类 2.子网掩码 1.1  互联网上连接的网络设备和计算机都有唯一的地址,此作为该主机在Interne ...

  2. 基于GDAL库,读取.grd文件(以海洋地形数据为例)Java版

    技术背景 海洋地形数据主要是通过美国全球地形起伏数据(GMT)获得,数据格式为grd(GSBG)二进制数据,打开软件通过是Surfer软件,surfer软件可进行数据的编辑处理,以及进一步的可视化表达 ...

  3. 04 js

    js 1. JavaScript概述 JavaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚本语言而出名,但 ...

  4. 公式编辑器CVE-2018-0798样本分析

      当前样本是一个RTF文档,内嵌一个公式编辑器对象,该对象利用Office编辑器漏洞CVE-2018-0798执行shellcode,对EQNEDT32.exe进行代码注入,执行恶意代码.   使用 ...

  5. MyBatis功能点二:从责任链设计模式的角度理解插件实现技术

    MyBatis允许对其四大组件(Executor,StatementHandler,ParameterHandler, ResultSetHandler)进行增强处理.在创建四大组件对象的时候 1.每 ...

  6. python中面向对象VS面向过程

    面向过程编程:首先分析出解决问题所需要的步骤(即"第一步做什么,第二步做什么,第三步做什么"),然后用函数实现各个步骤,再依次调用. 面向对象编程:会将程序看作是一组对象的集合,用 ...

  7. 每日一算之变位词(C#)

    今天看编程珠玑里面,看到一个关于查找变位词的题目,大概意思如下:post,stop,tops这几个是变位词,找出类似的这些词语来. 解题思路一:既然是变位词,1.他们的长度一定是一致的:2.还有就是他 ...

  8. 每日一算法之two sum

    题目如下:首先准备一个数组,[1,2,8,4,9]  然后输入一个6,找出数组两项之和为6的两个下标. 啥也不想,马上上代码,这个太简单了, static int[] twoSum(int[] num ...

  9. Oracle ASM 磁盘组基础知识整理(收藏版)

    转至:https://cloud.tencent.com/developer/article/1494403 为什么要写这么一篇基础知识呢?还是有那么一点点原因的,不是胡编乱造还真是有真实存在的事件的 ...

  10. 使用PLSQL 创建Oracle数据库用户并设置权限

    转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...