美文网首页
Docker常用命令

Docker常用命令

作者: overflowedstack | 来源:发表于2021-03-12 09:02 被阅读0次

    帮助命令

    docker version     #查看版本信息
    docker info        #查看Docker系统信息,包括镜像和容器的数量
    docker --help      #查看所有命令
    docker 命令 --help  #各个命令的帮助信息
    

    doc文档:https://docs.docker.com/reference/

    镜像命令

    docker images  #查看所有本地主机上的镜像
    
    ~ $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    hello-world         latest              d1165f221234        5 days ago          13.3 kB
    
    ~ $ docker images -aq
    d1165f221234
    
    #解释
    REPOSITORY 镜像的仓库源
    TAG 镜像的标签
    IMAGE ID 镜像的ID
    CREATED 镜像的创建时间
    SIZE 镜像的大小
    
    #可选项
    Options:
      -a, --all             Show all images (default hides intermediate images)
      -q, --quiet           Only show numeric IDs
    
    docker search   #搜索镜像
    
    ~ $ docker search mysql
    NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    mysql                             MySQL is a widely used, open-source relati...   10600     [OK]       
    mariadb                           MariaDB Server is a high performing open s...   3970      [OK]       
    
    
    #可选项,通过收藏来过滤
    ~ $ docker search mysql --filter=STARS=3000
    NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    mysql     MySQL is a widely used, open-source relati...   10600     [OK]       
    mariadb   MariaDB Server is a high performing open s...   3970      [OK]       
    
    docker pull   #下载镜像
    
    # 下载镜像 docker pull 镜像名[:tag]
    # 如果不写tag,默认就是latest
    ~ $ docker pull mysql
    Using default tag: latest
    latest: Pulling from library/mysql
    45b42c59be33: Pull complete 
    b4f790bd91da: Pull complete 
    325ae51788e9: Pull complete 
    adcb9439d751: Pull complete 
    174c7fe16c78: Pull complete 
    698058ef136c: Pull complete 
    4690143a669e: Pull complete 
    f7599a246fd6: Pull complete 
    35a55bf0c196: Pull complete 
    790ac54f4c47: Pull complete 
    b0ddd5d1b543: Pull complete 
    1aefd67cb33d: Pull complete 
    Digest: sha256:7706e4c382be813b58ef514f2bdac747cd463a6866c6c81165d42a1d0e4fe947
    Status: Downloaded newer image for mysql:latest
    
    # 指定版本下载
    
    
    docker rmi   #删除镜像
    
    docker rmi -f 容器id   #删除指定的镜像
    docker rmi -f 容器id 容器id   #删除多个镜像
    docker rmi -f $(docker images -qa)   #删除全部镜像
    

    容器命令

    下载一个centos镜像

    ~ $ docker pull centos
    Using default tag: latest
    latest: Pulling from library/centos
    7a0437f04f83: Pull complete 
    Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
    Status: Downloaded newer image for centos:latest
    
    ~ $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos              latest              300e315adb2f        3 months ago        209 MB
    
    docker run [可选参数] image
    
    #参数说明
    --name="Name"   容器名字
    -d   后台方式运行
    -it   使用交互方式运行,进入容器查看内容
    -P   随机指定端口
    -p   指定容器的端口  -p 8080:8080
           -p  主机端口:容器端口
           -p  容器端口
    
    #测试,启动并进入容器
    ~ $ docker run -it centos /bin/bash
    [root@0592aedf2ec7 /]# ls   #查看容器内的centos,基础版本,很多命令是不完善的
    bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@0592aedf2ec7 /]#
    
    #列出所有运行的容器
    ~ $ docker ps   #列出当前正在运行的容器
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    
    ~ $ docker ps -a   #列出当前+历史运行过的容器
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
    0592aedf2ec7        centos              "/bin/bash"         2 minutes ago       Exited (0) 18 seconds ago                       nervous_booth
    1fed15b70d43        d1165f221234        "/hello"            22 hours ago        Exited (0) 22 hours ago                         naughty_fermat
    e659b94cf5fb        d1165f221234        "/hello"            22 hours ago        Exited (0) 22 hours ago                         infallible_haibt
    
    ~ $ docker ps -a -n=1
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
    0592aedf2ec7        centos              "/bin/bash"         4 minutes ago       Exited (0) 2 minutes ago                       nervous_booth
    
    ~ $ docker ps -aq
    0592aedf2ec7
    1fed15b70d43
    e659b94cf5fb
    
    #退出容器
    exit   #直接容器停止并退出
    Ctrl + P + Q   #容器不停止,退出
    
    ~ $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    ~ $ docker run -it centos /bin/bash
    [root@aeefe2e7c17b /]# ~ $ 
    ~ $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED                  STATUS              PORTS               NAMES
    aeefe2e7c17b        centos              "/bin/bash"         Less than a second ago   Up 42 seconds                           gallant_kowalevski
    
    #删除容器
    docker rm 容器id   #删除指定容器,不能删除正在运行的容器
    docker rm -f 容器id  #强制删除容器,包括正在运行的
    docker rm -f $(docker ps -aq)   #删除所有容器
    docker ps -aq | xargs docker rm   #删除所有容器
    
    #启动和停止容器的操作
    docker start 容器id   #启动容器
    docker restart 容器id   #重启容器
    docker stop 容器id   #停止当前正在运行的容器
    docker kill 容器id   #强制停止当前容器
    

    其他常用命令

    #查看日志
    #自己编写一段shell脚本,打印日志
    ~ $ docker run -d centos /bin/sh -c "while true;do echo 666;sleep 10;done"
    d4add4c71ac2bb41b1608b2ebe6b733451c752b596af583c608c5add2ecf3362
    
    #显示日志
    ~ $ docker logs -tf --tail 20 d4add4c71ac2
    2021-03-11T12:45:14.781444732Z 666
    
    #查看容器中的进程信息
    ~ $ docker top d4add4c71ac2
    PID                 USER                TIME                COMMAND
    4492                root                0:00                /bin/sh -c while true;do echo 666;sleep 10;done
    4535                root                0:00                {sleep} /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 10
    
    #查看镜像元数据
    ~ $ docker inspect d4add4c71ac2
    
    #进入当前正在运行的容器
    #通常容器都是通过后台方式运行的,有时候需要进入容器,修改一些配置
    docker exec -it 容器id bashShell   #进入容器后开启一个新的终端
    
    ~ $ docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    d4add4c71ac2        centos              "/bin/sh -c 'while..."   7 minutes ago       Up 8 minutes                            relaxed_thompson
    6a765b106040        centos              "/bin/bash"              12 minutes ago      Up 13 minutes                           objective_franklin
    ~ $ docker exec -it d4add4c71ac2 /bin/bash
    [root@d4add4c71ac2 /]# ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  0 12:45 ?        00:00:00 /bin/sh -c while true;do echo 666;sleep 10;done
    root        58     1  0 12:54 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 10
    root        59     0  0 12:54 ?        00:00:00 /bin/bash
    root        72    59  0 12:54 ?        00:00:00 ps -ef
    
    
    #方式二
    docker attach 容器id   #进入容器正在执行的终端,不会启动一个新的进程
    ~ $ docker attach d4add4c71ac2
    正在执行当前的代码...
    
    #从容器内拷贝文件到主机上
    docker cp
    
    [root@6a765b106040 home]# touch test.java
    ~ $ docker cp 6a765b106040:/home/test.java ./
    

    相关文章

      网友评论

          本文标题:Docker常用命令

          本文链接:https://www.haomeiwen.com/subject/dgmgqltx.html