Docker常用命令

(1)帮助命令

格式:命令 --help

#docker帮助命令
docker 命令 --help

(2)镜像命令

#镜像查询
docker search 镜像名称 #参数 -f 过滤
#镜像查询实例
docker search --filter stars=500 mysql #收藏数大于500的都会被查出来

#下载镜像
docker pull 镜像名称 #指定版本:镜像名称:版本号 
 -a 下载仓库中所有版本的镜像
 -q 抑制详细信息输出
[root@cluster-node-5 ~]# docker pull mysql  #没有指定版本就下载最新的
Using default tag: latest
latest: Pulling from library/mysql
a076a628af6f: Pull complete #分层结构,联合文件系统
f6c208f3f991: Pull complete #当下载其他版本,如果分层结构和底层相同会显示已存在,不再下载。
88a9455a9165: Pull complete
406c9b8427c6: Pull complete
7c88599c0b25: Pull complete
25b5c6debdaf: Pull complete
43a5816f1617: Pull complete
69dd1fbf9190: Pull complete
5346a60dcee8: Pull complete
ef28da371fc9: Pull complete
fd04d935b852: Pull complete
050c49742ea2: Pull complete
Digest: sha256:0fd2898dc1c946b34dceaccc3b80d38b1049285c1dab70df7480de62265d6213
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest

#查看镜像,可配合参数使用
docker images 
 没有参数默认查看所有镜像
 镜像名 查看指定镜像
 -a 查看所有镜像
 -q 查看镜像id

#删除镜像
docker rmi 镜像名称或id
 -f 强制删除

#删除所有镜像
docker rmi -f $(docker images -aq)

(3)容器命令

容器是通过镜像创建的,所以镜像是容器的前提条件

#创建容器:通过运行和操作镜像即可创建容器
docker run 镜像名
 -d #后台运行
#操作容器
docker run -it 镜像名称 容器操作环境 #进入容器
exit #退出容器
#容器操作实例
[root@cluster-node-5 ~]# docker run -it centos /bin/bash
[root@cdf3b234e48d /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@cdf3b234e48d /]# exit
exit

#退出并运行容器
Ctrl+P+Q

#查看容器
docker ps
 没有参数默认查看所有容器
 -a 查看所有容器
 -q 查看已运行容器id
 -l 最近创建容器
 -f 过滤
 
#删除容器
docker rm 容器id 
 -f 强制删除(正在运行的)
 
#启动、停止、重启容器
docker start 容器id
docker stop 容器id
docker restart 容器id
docker kill 容器id

(4)常用的其他命令

  • 容器后台运行
    #添加-d参数即可
    docker run centos
    #docker ps查看并没有进程,因为docker run 运行的后台进程,并没有前台程序。
    #常见的坑:docker run 启动的是后台进程,必须要有一个前台进程,如果发现没有前台进程,后台进程就会自动停掉#例子:docker run -d nginx 启动nginx,但并没有前台进程,所以nginx会自动停止退出 (启动tomcat就没有这样的问题)
    
  • 容器运行日志
    #日志帮助命令
    docker logs --help 
    
    #查看日志
    docker logs -t -f --tail 显示日志条数 容器id
    
    #自己写一个脚本来跑(-c写命令)
    docker run -d centos /bin/bash -c "while true;do echo wangmingchao; sleep 1;done"
    
    [root@cluster-node-5 ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
    916f9bce35f8   centos    "/bin/bash -c 'while…"   5 seconds ago   Up 4 seconds             eloquent_zhukovsky
    
    #根据容器id(916f9bce35f8)查看日志
    docker logs -tf --tail 10 916f9bce35f8
     -tf #显示日志(带时间戳)
     --taif number #显示日志内容(条数)
    [root@cluster-node-5 ~]# docker logs -tf --tail 10 916f9bce35f8
    2021-01-20T02:44:29.526266706Z wangmingchao
    2021-01-20T02:44:30.531660889Z wangmingchao
    2021-01-20T02:44:31.537137199Z wangmingchao
    2021-01-20T02:44:32.542756070Z wangmingchao
    2021-01-20T02:44:33.546251299Z wangmingchao
    2021-01-20T02:44:34.551962770Z wangmingchao
    2021-01-20T02:44:35.557304708Z wangmingchao
    2021-01-20T02:44:36.562694433Z wangmingchao
    2021-01-20T02:44:37.568698327Z wangmingchao
    2021-01-20T02:44:38.574129510Z wangmingchao
    ......
    
    #查看容器内部进程信息
    docker top 容器id
    [root@cluster-node-5 ~]# docker top 916f9bce35f8
    UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
    root                19552               19531               0                   10:42               ?                   00:00:00            /bin/bash -c while true;do echo wangmingchao; sleep 1;done
    root                19996               19552               0                   10:48               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/s leep 1
    
    
    #查看容器信息
    docker inspect 容器id
    [root@cluster-node-5 ~]# docker inspect 916f9bce35f8
    [
        {
            "Id": "916f9bce35f8decd1b781238a379d63e9717f4a8526d647f3eefa61e2994c5fb",
            "Created": "2021-01-20T02:42:57.618486753Z",
            "Path": "/bin/bash",
            "Args": [
                "-c",
                "while true;do echo wangmingchao; sleep 1;done"
            ],
            "State": {
                "Status": "running",
                "Running": true,
                "Paused": false,
                "Restarting": false,
                "OOMKilled": false,
                "Dead": false,
                "Pid": 19552,
                "ExitCode": 0,
                "Error": "",
                "StartedAt": "2021-01-20T02:42:58.054917733Z",
                "FinishedAt": "0001-01-01T00:00:00Z"
            },
            "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
            "ResolvConfPath":  ...............................................................
    
    
  • 进入容器的命令
    #通过exec命令进入
    docker exec -it 容器id shellbash
    
    #测试进入容器
    exit
    [root@cluster-node-5 ~]# docker exec -it 916f9bce35f8 /bin/bash
    [root@916f9bce35f8 /]# ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  0 02:42 ?        00:00:00 /bin/bash -c while true;do echo wangmingchao; sleep 1;done
    root      1273     0  0 03:03 pts/0    00:00:00 /bin/bash
    root      1292     1  0 03:03 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
    root      1293  1273  0 03:03 pts/0    00:00:00 ps -ef
    
    #通过attach命令进入(不用加任何参数)
    docker attach 容器id
    [root@cluster-node-5 ~]# docker attach 916f9bce35f8
    wangmingchao
    wangmingchao
    ^Cwangmingchao
    
    #进入容器命令比较
     exec #会新起一个终端,可以在其中操作(常用)
     attach #直接进入正在执行的终端,不会重启一个
    
    
  • 从容器中拷贝文件到主机上
    #cp命令,在主机操作容器
    [root@cluster-node-5 ~]# docker images
    REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
    mysql        latest    d4c3cafb11d5   7 days ago    545MB
    centos       latest    300e315adb2f   6 weeks ago   209MB
    
    #进入容器
    [root@cluster-node-5 ~]# docker run it 300e315adb2f bin/bash
    
    #创建测试文件
    [root@1c216015f955 /]# cd /home/
    [root@1c216015f955 home]# touch wmc.sh
    [root@cluster-node-5 ~]# docker ps
    CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES
    1c216015f955   300e315adb2f   "/bin/bash"   2 minutes ago   Up 2 minutes             quirky_bassi
    
    #拷贝测试
    [root@cluster-node-5 ~]# docker cp 1c216015f955:/home/wmc.sh /home/
    [root@cluster-node-5 ~]# cd /home/
    [root@cluster-node-5 home]# ll
    总用量 0
    drwxr-xr-x. 3 root root 30 1月  15 10:50 software
    -rw-r--r--. 1 root root  0 1月  20 11:18 wmc.sh
    
    #现在只是手动操作,之后通过一个数据卷来实现,实现主机:/home 与docker : /home数据自动同步
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值