docker常见的命令及其使用示例

Docker

弱小和无知不是生存的障碍,傲慢才是。

再小的帆也能远航

只要学不死,就往死里学

1、Docker的常用命令

1、一些基本的命令:

命令说明
docker version查看docker的版本
docker info显示docker的系统信息(更加详细,可以显示容器和镜像的数量)
docker 命令 --help帮助文档

2、镜像命令:

命令结果说明
docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 5 months ago 13.3kB
查询所有镜像的信息
docker search如:搜索mysql的镜像:docker search mysql --filter=STARS=3000,表示搜索镜像,且STARS要大于3000搜索镜像

docker images

# 查询的结果
REPOSITORY :镜像的仓库源     hello-world
TAG        :镜像的版本       latest
IMAGE ID   :镜像的ID        d1165f221234
CREATED    :镜像的创建时间   5 months ago
SIZE       :镜像的大小       13.3kB

# docker images 的可选项:
docker images --help
Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]
List images
Options:  # 以下就是   docker images 参数可选项
  -a, --all             Show all images 即显示所有镜像 (default hides intermediate images  默认不用写,也是默认的选项)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show image IDs   
  # 这个使用的比较多的,查看镜像的id

docker search

命令结果说明
docker search mysql (mysql可替换为你想要寻找的镜像名)docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11332 [OK]
即在docker hub上搜索对应的镜像,左边的结果是所有镜像中的一个
docker search mysql --filter=STARS= 3000表示查询的镜像中,STARS的点击数量要超过3000个
#1. -help了解docker search的对应的参数解释
docker search mysql --help
# Search the Docker Hub for images  表示从Docker Hub上寻找到的镜像
Options: #参数可选项
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Don't truncate output


# 2. 有参数的条件查询,表示过滤STARS数在3000之上的镜像,
docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   
mysql     MySQL is a widely used, open-source relation…   11332     [OK]
mariadb   MariaDB Server is a high performing open sou…   4305      [OK]

docker pull 镜像名 [:tag]

下载镜像tag可以下载对应的版本,默认是最新的版本

docker pull mysql 

docker rmi删除对应的镜像

3、容器命令:

  1. 运行容器
docker run [可选参数] image

#参数说明
--name="Name"   容器名字  用来区分容器
-d              后台方式运行
-it             使用交互方式运行,进入容器查看内容
-p              指定容器的端口 -p 8080:8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口  (经常使用)
	-p 容器端口
	什么都不写  默认也是容器端口
-P  			随机指定端口

#容器的改变
docker run -it centos

[root@zqinglong ~]# docker run -it centos
[root@5b57d46895d2 /]#    通过root@后面的内容即可发现容器不一样了
exit  #退出当前容器


  1. 列出所有的容器 docker ps
docker ps

参数:
      # 列出当前运行着的容器
 -a   # 列出目前所运行的容器以及运行容器的历史
 -n=2 # 列出最近运行过的两个容器
 
 -q   # 显示容器的编号
-aq   # 显示所有容器的编号  [root@zqinglong ~]# docker ps -aq     结果:ea65268e4c3e  5b57d46895d2 d3cbf8c8ea22  b65d49322361  bcf12d8163cf  a0c353adfe3e



[root@zqinglong ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
bcf12d8163cf   centos    "/bin/bash"   44 minutes ago   Up 44 minutes             zen_galileo
  1. 关闭容器

    exit  			#关闭容器且停止容器
    Ctrl + P + Q	#关闭容器但是不停止容器
    
    
    
  2. 删除容器

    [root@zqinglong ~]# docker ps -a     #显示当前所有的容器
    #结果:
    CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS                        PORTS     NAMES
    d3cbf8c8ea22   centos        "/bin/bash"   28 minutes ago   Exited (127) 21 minutes ago             frosty_grothendieck
    b65d49322361   centos        "/bin/bash"   29 minutes ago   Exited (0) 29 minutes ago               zen_banzai
    
    
    [root@zqinglong ~]# docker rm b65d49322361  #删除id为b65d49322361的容器
    b65d49322361
    
    #删除后再查看所有的容器
    
    [root@zqinglong ~]# docker ps -a   #查看所有的容器
    #结果:
    CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS                        PORTS     NAMES
    a0c353adfe3e   hello-world   "/hello"      4 days ago       Exited (0) 4 days ago                   reverent_bassi
    
  3. 启动,停止容器

[root@zqinglong ~]# docker run -it centos /bin/bash  #运行容器

[root@17ec25eaec5c /]# [root@zqinglong ~]# docker ps  #显示目前所运行的容器
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
17ec25eaec5c   centos    "/bin/bash"   19 seconds ago   Up 19 seconds             compassionate_merkle
bcf12d8163cf   centos    "/bin/bash"   54 minutes ago   Up 54 minutes             zen_galileo
[root@zqinglong ~]# docker stop 17ec25eaec5c   		#停止容器
17ec25eaec5c
[root@zqinglong ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
bcf12d8163cf   centos    "/bin/bash"   54 minutes ago   Up 54 minutes             zen_galileo

4、其他的常用命令(重点)

  1. 后台启动容器

    [root@zqinglong ~]#  docker run -d centos
    ef7c7f38fb3217f5edafa19136f135b9927ae2e2c91bf4c704a190d746112a17
    
    注意:如果前台没有进程,则后台的容器会自动销毁,因为已经没有要服务的对象了,所以系统图会自动销毁正在运行的容器
    
  2. 查看日志

    docker logs -tf --tail 10 容器id

    docker logs -tf --tail 10 0dac091a45a4
    # 可以通过dockers logs --help查看参数的定义
    -tf  表示-t表示显示时间戳,-f表示输出日志
    --tail 10   表示输出10条日志
    
    docker logs -tf --tail 10 0dac091a45a4
    # 结果:
    2021-08-29T12:03:44.366729346Z qinglong
    2021-08-29T12:03:45.368676293Z qinglong
    2021-08-29T12:03:46.370393724Z qinglong
    2021-08-29T12:03:47.372541505Z qinglong
    2021-08-29T12:03:48.374612524Z qinglong
    2021-08-29T12:03:49.376260087Z qinglong
    2021-08-29T12:03:50.378258252Z qinglong
    2021-08-29T12:03:51.379909439Z qinglong
    2021-08-29T12:03:52.382025674Z qinglong
    2021-08-29T12:03:53.383533646Z qinglong
    2021-08-29T12:03:54.385614936Z qinglong
    
  3. 查看容器中的进程信息

    docker top 容器id

    docker top 0dac091a45a4  #查看容器id为0dac091a45a4的进程信息
    UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
    root                2650409             2650387             0                   20:02               ?                   00:00:00            /bin/bash -c while true;do echo qinglong;sleep 1;done
    root                2651365             2650409             0                   20:08               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep
    
  4. 查看容器的元数据

    可以仔细阅读一下,实际上很多也是很熟悉的老朋友:

    docker inspect 0dac091a45a4
    [
        {
            "Id": "0dac091a45a4b16ad8c177b6fdd94a94fd739b9b132344b4b54df865cbc89784",
            "Created": "2021-08-29T12:02:10.683220539Z",
            "Path": "/bin/bash",
            "Args": [
                "-c",
                "while true;do echo qinglong;sleep 1;done"
            ],
            "State": {
                "Status": "running",
                "Running": true,
                "Paused": false,
                "Restarting": false,
                "OOMKilled": false,
                "Dead": false,
                "Pid": 2650409,
                "ExitCode": 0,
                "Error": "",
                "StartedAt": "2021-08-29T12:02:11.195031348Z",
                "FinishedAt": "0001-01-01T00:00:00Z"
            },
            "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
            "ResolvConfPath": "/var/lib/docker/containers/0dac091a45a4b16ad8c177b6fdd94a94fd739b9b132344b4b54df865cbc89784/resolv.conf",
            "HostnamePath": "/var/lib/docker/containers/0dac091a45a4b16ad8c177b6fdd94a94fd739b9b132344b4b54df865cbc89784/hostname",
            "HostsPath": "/var/lib/docker/containers/0dac091a45a4b16ad8c177b6fdd94a94fd739b9b132344b4b54df865cbc89784/hosts",
            "LogPath": "/var/lib/docker/containers/0dac091a45a4b16ad8c177b6fdd94a94fd739b9b132344b4b54df865cbc89784/0dac091a45a4b16ad8c177b6fdd94a94fd739b9b132344b4b54df865cbc89784-json.log",
            "Name": "/elastic_williams",
            "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/e2aabf6aabfaaa5526b57b09e56369083eb53a042cad8521176108120b9d0d10-init/diff:/var/lib/docker/overlay2/b9cb1f203af2c35c02b65c356a374ce94c09d7707d6aa933807dfa8210cd2fe0/diff",
                    "MergedDir": "/var/lib/docker/overlay2/e2aabf6aabfaaa5526b57b09e56369083eb53a042cad8521176108120b9d0d10/merged",
                    "UpperDir": "/var/lib/docker/overlay2/e2aabf6aabfaaa5526b57b09e56369083eb53a042cad8521176108120b9d0d10/diff",
                    "WorkDir": "/var/lib/docker/overlay2/e2aabf6aabfaaa5526b57b09e56369083eb53a042cad8521176108120b9d0d10/work"
                },
                "Name": "overlay2"
            },
            "Mounts": [],
            "Config": {
                "Hostname": "0dac091a45a4",
                "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",
                    "-c",
                    "while true;do echo qinglong;sleep 1;done"
                ],
                "Image": "centos",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {
                    "org.label-schema.build-date": "20201204",
                    "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": "26ef1b7ee3811caad4a8bb604e5a6e62d5c22429c0b964cf023a7560fbc2cc0f",
                "HairpinMode": false,
                "LinkLocalIPv6Address": "",
                "LinkLocalIPv6PrefixLen": 0,
                "Ports": {},
                "SandboxKey": "/var/run/docker/netns/26ef1b7ee381",
                "SecondaryIPAddresses": null,
                "SecondaryIPv6Addresses": null,
                "EndpointID": "2a9f7d4e637fafbecc79661d66f3104f2d886c6f25282260d39af74ba6c0b4a5",
                "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": "d6ae2b6f17d21a6ab7be85586682f4689f30e4c3ac5658809bb42f0841581709",
                        "EndpointID": "2a9f7d4e637fafbecc79661d66f3104f2d886c6f25282260d39af74ba6c0b4a5",
                        "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
                    }
                }
            }
        }
    ]
    
  5. 进入当前正在运行的容器中

    # 方式一
    docker exec
    
    [root@zqinglong ~]# docker exec -it 57923d72e937 /bin/bash
    [root@57923d72e937 /]# ls
    bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    
    #方式二
    docker attach
    
    [root@zqinglong ~]# docker attach 57923d72e937
    [root@57923d72e937 /]# ls
    bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    

    运行容器的两种方法:

    docker exec    # 进入容器后开启一个新的终端,可以在里面操作(常用)
    docker attach  # 进入容器正在执行的终端,不会启动新的终端
    
  6. 从容器中拷贝一个文件到主机上

    docker cp 容器id:容器内路径  目的主机的路径
    
    
    [root@zqinglong /]# docker ps -a   #显示所有的容器信息
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    [root@zqinglong /]# docker run -it centos /bin/bash
    [root@fa7370728160 /]# ls
    bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@fa7370728160 /]# cd home
    
    [root@fa7370728160 home]# touch test.java  # 在home文件夹下建立文件test。Java
    [root@fa7370728160 home]# ls
    test.java
    [root@fa7370728160 home]# exit
    exit
    [root@zqinglong /]# docker ps -a
    CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                      PORTS     NAMES
    fa7370728160   centos    "/bin/bash"   42 seconds ago   Exited (0) 15 seconds ago             sweet_franklin
    [root@zqinglong /]# docker cp fa7370728160:/home/test.java /home
    [root@zqinglong /]# ls
    bin   etc   lib64  mysql57-community-release-el7-10.noarch.rpm    opt    root  srv  usr
    boot  home  media  mysql57-community-release-el7-10.noarch.rpm.1  patch  run   sys  var
    dev   lib   mnt    mysql57-community-release-el7-10.noarch.rpm.2  proc   sbin  tmp  www
    [root@zqinglong /]# cd /home
    [root@zqinglong home]# ls
    MyWebSite  test.java  www
    [root@zqinglong home]#
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azuredragonz

相互鼓励,相互帮助,共同进步。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值