zoukankan      html  css  js  c++  java
  • Docker-基础002-常用命令

    学习内容总结来自B站UP主"遇见狂神说"的Docker教学视频: https://www.bilibili.com/video/BV1og4y1q7M4

    Docker命令

    1. 查看docker版本

    docker version

    显示客户端和服务端的各种版本信息

     2. 查看docker信息

    docker info

    显示更加详细的docker信息, 比如容器和镜像的个数, 系统内核, 网络连接, CPU等等, 可以理解为虚拟机的系统信息

     3. 查看帮助命令

    # 查看docker总共有那些命令即命令简介
    docker --help
    # 查看具体命令的可选参数等用法
    docker 命令名称 --help

    镜像命令(image)

    1. 查看本地的所有镜像

    docker images

    可选参数为:

    (root@Aliyun-Alex:~)# docker images --help
    Usage:    docker images [OPTIONS] [REPOSITORY[:TAG]]
    List images
    Options:
      -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 numeric IDs

    2. 搜索docker hub上的镜像

    docker search image_name
    # 例如:
    docker search mysql

     使用过滤参数

    如只想要stars大于3000的结果: 

    docker search mysql -f=stars=3000

     3. 从docker hub下载镜像

    # 下载最新版
    docker pull mysql
    # 下载指定版本
    docker pull mysql:5.7

    4. 删除本地镜像

    docker rmi -f 镜像名称或者ID   # 如 docker rmi mysql
    docker rmi -f 镜像名称或者ID 镜像名称或者ID 镜像名称或者ID  # 删除多个镜像用空格隔开
    docker rmi -f $(docker images -q)  # 将括号中搜索到的镜像全部删除

    容器命令(container)

    有了镜像才能创建容器, 可以理解为: 镜像就是类, 容器就是类的实例对象

    这里我们先下载centos镜像:  docker pull centos 

    1. 创建容器并启动

    docker run [可选参数] image
    
    # 常用参数
    --name="容器名称"  给容器命名, 如centos01, centos02等等
    -d                后台方式运行容器
    -it               使用交互方式运行, 进入容器终端
    -p                指定容器的端口
        -p 主机端口:容器端口
        -p ip:主机端口:容器端口
        -p 容器端口
        容器端口
    -P                随机指定端口

    测试启动并进入centos容器

    docker run -it centos

     可以看到主机名称变成了一串数字(这串数字就是容器的ID), 路径也变成了根目录/, 这就是进入了centos容器

    但是由于centos镜像只是留下了centos系统最基础的必需资源, 所以体积小, 但是功能可能不太完善, 一些命令也没有, 如vim, wget等

    2. 退出容器

    exit  # 停止容器的运行
    Ctrl+p+q # 不停止容器
    docker attach # 容器ID, 进入运行中容器的终端

    3. 查看正在运行的容器

    docker ps
    docker ps -a  # 查看所有容器, 包括已经停止运行了的容器
    docker ps -n=? # 显示最近的n个容器
    docker ps -q # 只显示容器编号

     4. 删除容器

    docker rm -f 容器名称或者ID   # 如 docker rm mysql
    docker rm -f 容器名称或者ID 容器名称或者ID 容器名称或者ID  # 删除多个容器用空格隔开
    docker rm -f $(docker ps -q)  # 将括号中搜索到的容器全部删除

    5. 启动和停止容器

    docker start 容器id  # 启动停止的容器
    docker restart 容器id  # 重启容器
    docker stop 容器id  # 停止正在运行的容器
    docker kill 容器id  # 强制杀死正在运行的容器

     6. 后台启动容器

    docker run -d 镜像名
    # 如 docker run -d centos

    该命令会返回一个容器ID, 但是运行 docker ps 时发现该容器并不在运行, 而是刚启动就停止了

    原因是因为docker容器后台运行时, 必须要有一个对应的前台进程, 若这里加上(-it)那么就会启动一个前台进程, 若没有前台进程那么docker的机制就会自动把这个容器停止, 可以理解为垃圾回收

    7. 查看日志

    docker log -tf 容器ID
    
    
    Usage:    docker logs [OPTIONS] CONTAINER
    
    Fetch the logs of a container
    
    Options:
          --details        Show extra details provided to logs
      -f, --follow         Follow log output
          --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
          --tail string    Number of lines to show from the end of the logs (default "all")
      -t, --timestamps     Show timestamps
          --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)

     8. 查看容器中的进程信息

    docker top 容器ID

    9. 查看容器的信息

    docker inspect 容器ID

    10. 进入正在运行的容器

    # 方式一
    docker exec -it 容器ID /bin/bash
    
    # 方式二
    docker attach 容器ID

    上述两者命令的区别是:

    docker exec : 进入容器后开启一个新的终端

    docker attach : 进入容器正在执行的终端, 不会开启新的终端

    11. 从容器内拷贝文件到主机上

    docker cp 容器ID:要拷贝的文件路径 本机目的路径
    # 如: docker cp 16bd39b136a3:root/copy_test.py /home

     12. 将容器打包成新的镜像

    docker commit -a "作者信息" -m "提交备注信息" 容器ID 目标镜像名:[TAG]
  • 相关阅读:
    自定义Toast
    自定义控件三部曲之动画篇(四)——ValueAnimator基本使用
    关于ShapeDrawable应用的一些介绍(下)
    关于ShapeDrawable应用的一些介绍(中)之Gradient
    关于ShapeDrawable应用的一些介绍(上)
    android 经典博客
    PopUpWindow使用详解(二)——进阶及答疑
    详解Dialog(二)——有关列表的构建
    安装eclipse的maven插件
    fragment.setMenuVisibility setUserVisibleHint
  • 原文地址:https://www.cnblogs.com/gcxblogs/p/13377664.html
Copyright © 2011-2022 走看看